about summary refs log tree commit diff
path: root/spec/controllers/admin/domain_blocks_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/admin/domain_blocks_controller_spec.rb')
-rw-r--r--spec/controllers/admin/domain_blocks_controller_spec.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index 4578efb02..0ca41d7d4 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -10,7 +10,47 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do
   describe 'GET #index' do
     it 'returns http success' do
       get :index
+
       expect(response).to have_http_status(:success)
     end
   end
+
+  describe 'GET #new' do
+    it 'returns http success' do
+      get :new
+
+      expect(response).to have_http_status(:success)
+    end
+  end
+
+  describe 'GET #show' do
+    it 'returns http success' do
+      domain_block = Fabricate(:domain_block)
+      get :show, params: { id: domain_block.id }
+
+      expect(response).to have_http_status(:success)
+    end
+  end
+
+  describe 'POST #create' do
+    it 'blocks the domain' do
+      allow(DomainBlockWorker).to receive(:perform_async).and_return(true)
+      post :create, params: { domain_block: { domain: 'example.com', severity: 'silence' } }
+
+      expect(DomainBlockWorker).to have_received(:perform_async)
+      expect(response).to redirect_to(admin_domain_blocks_path)
+    end
+  end
+
+  describe 'DELETE #destroy' do
+    it 'unblocks the domain' do
+      service = double(call: true)
+      allow(UnblockDomainService).to receive(:new).and_return(service)
+      domain_block = Fabricate(:domain_block)
+      delete :destroy, params: { id: domain_block.id, domain_block: { retroactive: '1' } }
+
+      expect(service).to have_received(:call).with(domain_block, true)
+      expect(response).to redirect_to(admin_domain_blocks_path)
+    end
+  end
 end