mirror of
https://github.com/mastodon/mastodon.git
synced 2024-08-20 21:08:15 -07:00
Compare commits
3 commits
0e104d04cb
...
6e6ed32633
Author | SHA1 | Date | |
---|---|---|---|
|
6e6ed32633 | ||
|
64d2a6eba0 | ||
|
0b66433c08 |
3 changed files with 29 additions and 1 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class FixInvalidDomainBlockSeverities < ActiveRecord::Migration[7.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
safety_assured do
|
||||
execute <<~SQL.squish
|
||||
UPDATE domain_blocks
|
||||
SET severity = CASE WHEN severity > 2 THEN 2 WHEN severity < 0 THEN 0 END
|
||||
WHERE severity > 2 OR severity < 0 RETURNING id;
|
||||
SQL
|
||||
end
|
||||
end
|
||||
|
||||
def down; end
|
||||
end
|
|
@ -205,6 +205,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
|
||||
|
|
Loading…
Reference in a new issue