Files
grecia/spec/models/banner_spec.rb
taitus 408422891e Adding consistency in banner scopes
Since the :post_started_at and :post_ended_at fields are of type Date, we check
with Date.current and not with Time.current.

This change has been caused because some test suites were failing
(https://github.com/consul/consul/runs/2170798218?check_suite_focus=true).
The code we had was causing the banners to be available a few hours earlier
or later than they should be depending on the time zone of the application.
2021-04-08 17:23:30 +02:00

68 lines
1.8 KiB
Ruby

require "rails_helper"
describe Banner do
let(:banner) { build(:banner) }
describe "Concerns" do
it_behaves_like "acts as paranoid", :banner
it_behaves_like "globalizable", :banner
end
it "is valid" do
expect(banner).to be_valid
end
it "assigns default values to new banners" do
banner = Banner.new
expect(banner.background_color).to be_present
expect(banner.font_color).to be_present
end
describe "scope" do
describe ".with_active" do
it "works when UTC date is different", :with_non_utc_time_zone do
banner = create(:banner, post_started_at: Date.current, post_ended_at: Date.current)
travel_to((Date.current - 1.day).end_of_day) do
expect(Banner.with_active).to be_empty
end
travel_to(Date.current.beginning_of_day) do
expect(Banner.with_active).to eq [banner]
end
travel_to(Date.current.end_of_day) do
expect(Banner.with_active).to eq [banner]
end
travel_to((Date.current + 1.day).beginning_of_day) do
expect(Banner.with_active).to be_empty
end
end
end
describe ".with_inactive" do
it "works when UTC date is different", :with_non_utc_time_zone do
banner = create(:banner, post_started_at: Date.current, post_ended_at: Date.current)
travel_to((Date.current - 1.day).end_of_day) do
expect(Banner.with_inactive).to eq [banner]
end
travel_to(Date.current.beginning_of_day) do
expect(Banner.with_inactive).to be_empty
end
travel_to(Date.current.end_of_day) do
expect(Banner.with_inactive).to be_empty
end
travel_to((Date.current + 1.day).beginning_of_day) do
expect(Banner.with_inactive).to eq [banner]
end
end
end
end
end