From 0b66433c085984dec8296e4cb2112f3df946eada Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Fourn=C3=A8s?= Date: Sat, 10 Feb 2024 18:55:30 +0000 Subject: [PATCH] Add severity validation --- app/models/domain_block.rb | 2 +- spec/requests/api/v1/admin/domain_blocks_spec.rb | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index b5d1f2e079..4fb554769d 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -21,7 +21,7 @@ class DomainBlock < ApplicationRecord include DomainNormalizable include DomainMaterializable - enum :severity, { silence: 0, suspend: 1, noop: 2 } + enum :severity, { silence: 0, suspend: 1, noop: 2 }, validate: true validates :domain, presence: true, uniqueness: true, domain: true diff --git a/spec/requests/api/v1/admin/domain_blocks_spec.rb b/spec/requests/api/v1/admin/domain_blocks_spec.rb index 47aaf44d80..33f66bc005 100644 --- a/spec/requests/api/v1/admin/domain_blocks_spec.rb +++ b/spec/requests/api/v1/admin/domain_blocks_spec.rb @@ -168,6 +168,17 @@ RSpec.describe 'Domain Blocks' do expect(response).to have_http_status(422) end end + + context 'when severity is invalid' do + let(:params) { { domain: 'bar.com', severity: :bar } } + + it 'returns http unprocessable entity' do + subject + + expect(response).to have_http_status(422) + expect(body_as_json[:error]).to eq('Validation failed: Severity is not included in the list') + end + end end describe 'PUT /api/v1/admin/domain_blocks/:id' do