This commit is contained in:
Daniel M Brasil 2024-04-26 18:07:05 +00:00 committed by GitHub
commit 914502f8f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 19 additions and 2 deletions

View File

@ -23,9 +23,9 @@ class IpBlock < ApplicationRecord
sign_up_requires_approval: 5000,
sign_up_block: 5500,
no_access: 9999,
}, prefix: true
}, prefix: true, validate: true
validates :ip, :severity, presence: true
validates :ip, presence: true
validates :ip, uniqueness: true
after_commit :reset_cache

View File

@ -18,6 +18,13 @@ describe IpBlock do
expect(ip_block).to model_have_error_on_field(:severity)
end
it 'validates severity inclusion', :aggregate_failures do
ip_block = described_class.new(ip: '127.0.0.1', severity: :invalid)
expect(ip_block).to_not be_valid
expect(ip_block).to model_have_error_on_field(:severity)
end
it 'validates ip uniqueness', :aggregate_failures do
described_class.create!(ip: '127.0.0.1', severity: :no_access)

View File

@ -166,6 +166,16 @@ RSpec.describe 'IP Blocks' do
expect(response).to have_http_status(422)
end
end
context 'when the given severity is invalid' do
let(:params) { { ip: '151.0.32.55', severity: 'invalid' } }
it 'returns http unprocessable entity' do
subject
expect(response).to have_http_status(422)
end
end
end
describe 'PUT /api/v1/admin/ip_blocks/:id' do