diff --git a/spec/controllers/password_resets_controller_spec.rb b/spec/controllers/password_resets_controller_spec.rb index 88063fb..6406562 100644 --- a/spec/controllers/password_resets_controller_spec.rb +++ b/spec/controllers/password_resets_controller_spec.rb @@ -26,7 +26,7 @@ it "renders a success notice" do post :create, params - expect(JSON.parse(response.body)).to eq(["reset sent"]) + expect(json).to eq(["reset sent"]) end end @@ -40,7 +40,7 @@ it "renders an error" do post :create, params - expect(JSON.parse(response.body)).to eq(["reset failed"]) + expect(json).to eq(["reset failed"]) end end end @@ -81,7 +81,7 @@ it "renders a success notice" do patch :update, params - expect(JSON.parse(response.body)).to eq(["password updated"]) + expect(json).to eq(["password updated"]) end end @@ -95,7 +95,7 @@ it "renders an error" do patch :update, params - expect(JSON.parse(response.body)).to eq(["update failed"]) + expect(json).to eq(["update failed"]) end end end diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index d4b2496..d913217 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -1,5 +1,3 @@ -include Helpers - RSpec.describe UsersController do let(:user) { create(:unconfirmed_user) } @@ -73,7 +71,7 @@ it "returns an error" do user.errors.add(:email, "error") post :create, params - expect(JSON.parse(response.body)).to eq("email" => ["error"]) + expect(json["email"]).to eq(["error"]) end end end @@ -97,12 +95,6 @@ end context "when succesful" do - let(:serializer) { UserSerializer.new(user) } - - let(:serialization) do - ActiveModel::Serializer::Adapter.create(serializer) - end - it "calls the ShowUser interactor" do expect(ShowUser).to receive(:call) get :show, params @@ -115,7 +107,7 @@ it "render the user as JSON" do get :show, params - expect(serialization.to_json).to eq(response.body) + expect(serialize(user)).to eq(response.body) end end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index fe0c9b9..93ae895 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -57,6 +57,9 @@ # arbitrary gems may also be filtered via: # config.filter_gems_from_backtrace("gem name") config.include FactoryGirl::Syntax::Methods + + # include custom helpers for authentication, json formatting, etc. + config.include RequestHelpers end require "simplecov" diff --git a/spec/support/helpers.rb b/spec/support/helpers.rb deleted file mode 100644 index c6aeab8..0000000 --- a/spec/support/helpers.rb +++ /dev/null @@ -1,6 +0,0 @@ -module Helpers - def authenticate - token = Knock::AuthToken.new(payload: { sub: user.id }).token - request.env["HTTP_AUTHORIZATION"] = "bearer #{token}" - end -end diff --git a/spec/support/request_helpers.rb b/spec/support/request_helpers.rb new file mode 100644 index 0000000..9ba2a07 --- /dev/null +++ b/spec/support/request_helpers.rb @@ -0,0 +1,14 @@ +module RequestHelpers + def json + JSON.parse(response.body) + end + + def authenticate + token = Knock::AuthToken.new(payload: { sub: user.id }).token + request.env["HTTP_AUTHORIZATION"] = "bearer #{token}" + end + + def serialize(resource) + ActiveModel::SerializableResource.new(resource).to_json + end +end