Browse Source

Fix flaky tests - generate_different_date_within_collection_year (#3067)

* Fix flaky tests - date handling in generate_different_date_within_collection_year

* Update tests to include inclusive range checks for date generation
pull/3070/head
Manny Dinssa 4 days ago committed by GitHub
parent
commit
22f169b64f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      app/helpers/collection_time_helper.rb
  2. 18
      spec/helpers/collection_time_helper_spec.rb

4
app/helpers/collection_time_helper.rb

@ -55,8 +55,8 @@ module CollectionTimeHelper
end
def generate_different_date_within_collection_year(date, start_date_override: nil, end_date_override: nil)
start_date = [start_date_override, collection_start_date(date).to_date].compact.max.to_date
end_date = [end_date_override, collection_end_date(date).to_date].compact.min.to_date
start_date = [start_date_override&.to_date, collection_start_date(date).to_date].compact.max.to_date
end_date = [end_date_override&.to_date, collection_end_date(date).to_date].compact.min.to_date
return nil if start_date >= end_date

18
spec/helpers/collection_time_helper_spec.rb

@ -114,7 +114,7 @@ RSpec.describe CollectionTimeHelper do
it "returns a different date within the collection year" do
result = generate_different_date_within_collection_year(date)
expect(result).not_to eq(date)
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31))
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31)).inclusive
end
end
@ -152,7 +152,7 @@ RSpec.describe CollectionTimeHelper do
it "returns a different date within the collection year" do
result = generate_different_date_within_collection_year(date)
expect(result).not_to eq(date)
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31))
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31)).inclusive
end
end
@ -162,7 +162,7 @@ RSpec.describe CollectionTimeHelper do
it "returns a different date within the collection year" do
result = generate_different_date_within_collection_year(date)
expect(result).not_to eq(date)
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31))
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31)).inclusive
end
end
@ -170,7 +170,7 @@ RSpec.describe CollectionTimeHelper do
it "ignores the override and returns a different date within the collection year" do
result = generate_different_date_within_collection_year(date, start_date_override: Time.zone.local(2023, 12, 31))
expect(result).not_to eq(date)
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31))
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31)).inclusive
end
end
@ -178,7 +178,7 @@ RSpec.describe CollectionTimeHelper do
it "ignores the override and returns a different date within the collection year" do
result = generate_different_date_within_collection_year(date, end_date_override: Time.zone.local(2025, 12, 1))
expect(result).not_to eq(date)
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31))
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31)).inclusive
end
end
@ -186,7 +186,7 @@ RSpec.describe CollectionTimeHelper do
it "returns a different date within the overridden range" do
result = generate_different_date_within_collection_year(date, start_date_override: Time.zone.local(2024, 8, 1), end_date_override: Time.zone.local(2024, 9, 1))
expect(result).not_to eq(date)
expect(result).to be_between(Time.zone.local(2024, 8, 1), Time.zone.local(2024, 9, 1))
expect(result).to be_between(Time.zone.local(2024, 8, 1), Time.zone.local(2024, 9, 1)).inclusive
end
end
@ -194,7 +194,7 @@ RSpec.describe CollectionTimeHelper do
it "ignores the start_date_override and returns a different date within the collection year" do
result = generate_different_date_within_collection_year(date, start_date_override: Time.zone.local(2023, 12, 31), end_date_override: Time.zone.local(2024, 5, 1))
expect(result).not_to eq(date)
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2024, 5, 1))
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2024, 5, 1)).inclusive
end
end
@ -202,7 +202,7 @@ RSpec.describe CollectionTimeHelper do
it "ignores the end_date_override and returns a different date within the collection year" do
result = generate_different_date_within_collection_year(date, start_date_override: Time.zone.local(2025, 3, 1), end_date_override: Time.zone.local(2025, 12, 1))
expect(result).not_to eq(date)
expect(result).to be_between(Time.zone.local(2025, 3, 1), Time.zone.local(2025, 3, 31))
expect(result).to be_between(Time.zone.local(2025, 3, 1), Time.zone.local(2025, 3, 31)).inclusive
end
end
@ -210,7 +210,7 @@ RSpec.describe CollectionTimeHelper do
it "ignores both overrides and returns a different date within the collection year" do
result = generate_different_date_within_collection_year(date, start_date_override: Time.zone.local(2023, 12, 31), end_date_override: Time.zone.local(2025, 12, 1))
expect(result).not_to eq(date)
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31))
expect(result).to be_between(Time.zone.local(2024, 4, 1), Time.zone.local(2025, 3, 31)).inclusive
end
end
end

Loading…
Cancel
Save