Use `normalizes` on `CustomFilter#context` value (#27602)
This commit is contained in:
parent
71eecbfa1f
commit
01b624c4a0
|
@ -41,7 +41,7 @@ class CustomFilter < ApplicationRecord
|
|||
validates :title, :context, presence: true
|
||||
validate :context_must_be_valid
|
||||
|
||||
before_validation :clean_up_contexts
|
||||
normalizes :context, with: ->(context) { context.map(&:strip).filter_map(&:presence) }
|
||||
|
||||
before_save :prepare_cache_invalidation!
|
||||
before_destroy :prepare_cache_invalidation!
|
||||
|
@ -114,10 +114,6 @@ class CustomFilter < ApplicationRecord
|
|||
|
||||
private
|
||||
|
||||
def clean_up_contexts
|
||||
self.context = Array(context).map(&:strip).filter_map(&:presence)
|
||||
end
|
||||
|
||||
def context_must_be_valid
|
||||
errors.add(:context, I18n.t('filters.errors.invalid_context')) if invalid_context_value?
|
||||
end
|
||||
|
|
|
@ -32,4 +32,12 @@ RSpec.describe CustomFilter do
|
|||
expect(record).to model_have_error_on_field(:context)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Normalizations' do
|
||||
it 'cleans up context values' do
|
||||
record = described_class.new(context: ['home', 'notifications', 'public ', ''])
|
||||
|
||||
expect(record.context).to eq(%w(home notifications public))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue