Extract `TEXT_LENGTH_LIMIT` constant in `Appeal` class (#30638)
parent
28921a12fe
commit
9bf2e2eda0
|
@ -18,6 +18,8 @@
|
||||||
class Appeal < ApplicationRecord
|
class Appeal < ApplicationRecord
|
||||||
MAX_STRIKE_AGE = 20.days
|
MAX_STRIKE_AGE = 20.days
|
||||||
|
|
||||||
|
TEXT_LENGTH_LIMIT = 2_000
|
||||||
|
|
||||||
belongs_to :account
|
belongs_to :account
|
||||||
belongs_to :strike, class_name: 'AccountWarning', foreign_key: 'account_warning_id', inverse_of: :appeal
|
belongs_to :strike, class_name: 'AccountWarning', foreign_key: 'account_warning_id', inverse_of: :appeal
|
||||||
|
|
||||||
|
@ -26,7 +28,7 @@ class Appeal < ApplicationRecord
|
||||||
belongs_to :rejected_by_account
|
belongs_to :rejected_by_account
|
||||||
end
|
end
|
||||||
|
|
||||||
validates :text, presence: true, length: { maximum: 2_000 }
|
validates :text, presence: true, length: { maximum: TEXT_LENGTH_LIMIT }
|
||||||
validates :account_warning_id, uniqueness: true
|
validates :account_warning_id, uniqueness: true
|
||||||
|
|
||||||
validate :validate_time_frame, on: :create
|
validate :validate_time_frame, on: :create
|
||||||
|
|
|
@ -3,6 +3,19 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe Appeal do
|
describe Appeal do
|
||||||
|
describe 'Validations' do
|
||||||
|
it 'validates text length is under limit' do
|
||||||
|
appeal = Fabricate.build(
|
||||||
|
:appeal,
|
||||||
|
strike: Fabricate(:account_warning),
|
||||||
|
text: 'a' * described_class::TEXT_LENGTH_LIMIT * 2
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(appeal).to_not be_valid
|
||||||
|
expect(appeal).to model_have_error_on_field(:text)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'scopes' do
|
describe 'scopes' do
|
||||||
describe 'approved' do
|
describe 'approved' do
|
||||||
let(:approved_appeal) { Fabricate(:appeal, approved_at: 10.days.ago) }
|
let(:approved_appeal) { Fabricate(:appeal, approved_at: 10.days.ago) }
|
||||||
|
|
Loading…
Reference in New Issue