Fix uncaught NoMethodError error in `/api/v1/admin/canonical_email_blocks/test` (#24947)

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
lolsob-rspec
Daniel M Brasil 2023-05-12 08:46:16 -03:00 committed by GitHub
parent c8998a2678
commit 7cf0ce19e2
2 changed files with 49 additions and 1 deletions

View File

@ -58,7 +58,7 @@ class Api::V1::Admin::CanonicalEmailBlocksController < Api::BaseController
end end
def set_canonical_email_blocks_from_test 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 end
def set_canonical_email_block def set_canonical_email_block

View File

@ -20,4 +20,52 @@ describe Api::V1::Admin::CanonicalEmailBlocksController do
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
end end
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 end