Simplify model validation specs for `Announcement` (#32481)

pull/2889/head
Matt Jankowski 2024-10-23 03:47:46 -04:00 committed by GitHub
parent c0f46e9031
commit bd0c826a3d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 20 additions and 8 deletions

View File

@ -67,18 +67,30 @@ RSpec.describe Announcement do
it { is_expected.to validate_presence_of(:text) }
describe 'ends_at' do
it 'validates presence when starts_at is present' do
record = Fabricate.build(:announcement, starts_at: 1.day.ago)
context 'when starts_at is present' do
subject { Fabricate.build :announcement, starts_at: 1.day.ago }
expect(record).to_not be_valid
expect(record.errors[:ends_at]).to be_present
it { is_expected.to validate_presence_of(:ends_at) }
end
it 'does not validate presence when starts_at is missing' do
record = Fabricate.build(:announcement, starts_at: nil)
context 'when starts_at is missing' do
subject { Fabricate.build :announcement, starts_at: nil }
expect(record).to be_valid
expect(record.errors[:ends_at]).to_not be_present
it { is_expected.to_not validate_presence_of(:ends_at) }
end
end
describe 'starts_at' do
context 'when ends_at is present' do
subject { Fabricate.build :announcement, ends_at: 1.day.ago }
it { is_expected.to validate_presence_of(:starts_at) }
end
context 'when ends_at is missing' do
subject { Fabricate.build :announcement, ends_at: nil }
it { is_expected.to_not validate_presence_of(:starts_at) }
end
end
end