diff --git a/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb b/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb
index 9ef1b3be715c8617eb1ed4d4a9484bb907ae11f0..7b192b979fd4936511804c9b5771913ae1338f34 100644
--- a/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb
+++ b/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb
@@ -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
diff --git a/spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb
index 3acae843ad9a22ae8a6d99e48f75b1718b29191a..e5ee288827f220221c640c55bbcdab4578e7fed4 100644
--- a/spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/canonical_email_blocks_controller_spec.rb
@@ -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