diff --git a/spec/models/custom_filter_spec.rb b/spec/models/custom_filter_spec.rb index 3501e79ff5..517cc4f6ae 100644 --- a/spec/models/custom_filter_spec.rb +++ b/spec/models/custom_filter_spec.rb @@ -8,6 +8,7 @@ RSpec.describe CustomFilter do it { is_expected.to validate_presence_of(:context) } it { is_expected.to_not allow_values([], %w(invalid)).for(:context) } + it { is_expected.to allow_values(%w(home)).for(:context) } end describe 'Normalizations' do @@ -15,4 +16,28 @@ RSpec.describe CustomFilter do it { is_expected.to normalize(:context).from(['home', 'notifications', 'public ', '']).to(%w(home notifications public)) } end end + + describe '#expires_in' do + subject { custom_filter.expires_in } + + let(:custom_filter) { Fabricate.build(:custom_filter, expires_at: expires_at) } + + context 'when expires_at is nil' do + let(:expires_at) { nil } + + it { is_expected.to be_nil } + end + + context 'when expires is beyond the end of the range' do + let(:expires_at) { described_class::EXPIRATION_DURATIONS.last.from_now + 2.days } + + it { is_expected.to be_nil } + end + + context 'when expires is before the start of the range' do + let(:expires_at) { described_class::EXPIRATION_DURATIONS.first.from_now - 10.minutes } + + it { is_expected.to eq(described_class::EXPIRATION_DURATIONS.first) } + end + end end