Fix HTTP 500 on POST /api/v1/admin/ip_blocks (#29308)

This commit is contained in:
Daniel M Brasil 2025-01-13 10:50:58 -03:00 committed by GitHub
parent 3a762cddf6
commit 0db7558822
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 13 additions and 1 deletions

View File

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

View File

@ -12,6 +12,8 @@ RSpec.describe IpBlock do
it { is_expected.to validate_presence_of(:severity) } it { is_expected.to validate_presence_of(:severity) }
it { is_expected.to validate_uniqueness_of(:ip) } it { is_expected.to validate_uniqueness_of(:ip) }
it { is_expected.to allow_values(:sign_up_requires_approval, :sign_up_block, :no_access).for(:severity) }
end end
describe '#to_log_human_identifier' do describe '#to_log_human_identifier' do

View File

@ -187,6 +187,16 @@ RSpec.describe 'IP Blocks' do
.to start_with('application/json') .to start_with('application/json')
end end
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 end
describe 'PUT /api/v1/admin/ip_blocks/:id' do describe 'PUT /api/v1/admin/ip_blocks/:id' do