~cytrogen/masto-fe

433ab0c9a3018393cdd2efc7e0513cb96b942320 — Daniel M Brasil 2 years ago 9015c2d
Fix uncaught NoMethodError error in `/api/v1/admin/canonical_email_blocks/test` (#24947)

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
M app/controllers/api/v1/admin/canonical_email_blocks_controller.rb => app/controllers/api/v1/admin/canonical_email_blocks_controller.rb +1 -1
@@ 58,7 58,7 @@ class Api::V1::Admin::CanonicalEmailBlocksController < Api::BaseController
  end

  def set_canonical_email_blocks_from_test
    @canonical_email_blocks = CanonicalEmailBlock.matching_email(params[:email])
    @canonical_email_blocks = CanonicalEmailBlock.matching_email(params.require(:email))
  end

  def set_canonical_email_block

M spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb => spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb +48 -0
@@ 20,4 20,52 @@ describe Api::V1::Admin::CanonicalEmailBlocksController do
      expect(response).to have_http_status(200)
    end
  end

  describe 'POST #test' do
    context 'when required email is not provided' do
      it 'returns http bad request' do
        post :test

        expect(response).to have_http_status(400)
      end
    end

    context 'when required email is provided' do
      let(:params) { { email: 'example@email.com' } }

      context 'when there is a matching canonical email block' do
        let!(:canonical_email_block) { CanonicalEmailBlock.create(params) }

        it 'returns http success' do
          post :test, params: params

          expect(response).to have_http_status(200)
        end

        it 'returns expected canonical email hash' do
          post :test, params: params

          json = body_as_json

          expect(json[0][:canonical_email_hash]).to eq(canonical_email_block.canonical_email_hash)
        end
      end

      context 'when there is no matching canonical email block' do
        it 'returns http success' do
          post :test, params: params

          expect(response).to have_http_status(200)
        end

        it 'returns an empty list' do
          post :test, params: params

          json = body_as_json

          expect(json).to be_empty
        end
      end
    end
  end
end