|
|
|
|
@ -99,32 +99,56 @@ RSpec.describe Scheme, type: :model do
|
|
|
|
|
Timecop.freeze(2022, 6, 7) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns active if the scheme is not deactivated" do |
|
|
|
|
scheme.deactivation_date = nil |
|
|
|
|
scheme.deactivation_date_type = nil |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:active) |
|
|
|
|
end |
|
|
|
|
context "when there have not been any previous deactivations" do |
|
|
|
|
it "returns active if the scheme is not deactivated" do |
|
|
|
|
expect(scheme.status).to eq(:active) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns deactivating soon if deactivation_date is in the future" do |
|
|
|
|
scheme.deactivation_date = Time.zone.local(2022, 8, 8) |
|
|
|
|
scheme.deactivation_date_type = "other" |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:deactivating_soon) |
|
|
|
|
end |
|
|
|
|
it "returns deactivating soon if deactivation_date is in the future" do |
|
|
|
|
scheme.scheme_deactivation_periods << FactoryBot.create(:scheme_deactivation_period, deactivation_date: Time.zone.local(2022, 8, 8)) |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:deactivating_soon) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns deactivated if deactivation_date is in the past" do |
|
|
|
|
scheme.deactivation_date = Time.zone.local(2022, 4, 8) |
|
|
|
|
scheme.deactivation_date_type = "other" |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:deactivated) |
|
|
|
|
it "returns deactivated if deactivation_date is in the past" do |
|
|
|
|
scheme.scheme_deactivation_periods << FactoryBot.create(:scheme_deactivation_period, deactivation_date: Time.zone.local(2022, 6, 6)) |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:deactivated) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns deactivated if deactivation_date is today" do |
|
|
|
|
scheme.scheme_deactivation_periods << FactoryBot.create(:scheme_deactivation_period, deactivation_date: Time.zone.local(2022, 6, 7)) |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:deactivated) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns deactivated if deactivation_date is today" do |
|
|
|
|
scheme.deactivation_date = Time.zone.local(2022, 6, 7) |
|
|
|
|
scheme.deactivation_date_type = "other" |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:deactivated) |
|
|
|
|
context "when there have been previous deactivations" do |
|
|
|
|
before do |
|
|
|
|
scheme.scheme_deactivation_periods << FactoryBot.create(:scheme_deactivation_period, deactivation_date: Time.zone.local(2022, 6, 4), reactivation_date: Time.zone.local(2022, 6, 5)) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns active if the scheme has no relevant deactivation records" do |
|
|
|
|
expect(scheme.status).to eq(:active) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns deactivating soon if deactivation_date is in the future" do |
|
|
|
|
scheme.scheme_deactivation_periods << FactoryBot.create(:scheme_deactivation_period, deactivation_date: Time.zone.local(2022, 8, 8)) |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:deactivating_soon) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns deactivated if deactivation_date is in the past" do |
|
|
|
|
scheme.scheme_deactivation_periods << FactoryBot.create(:scheme_deactivation_period, deactivation_date: Time.zone.local(2022, 6, 6)) |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:deactivated) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "returns deactivated if deactivation_date is today" do |
|
|
|
|
scheme.scheme_deactivation_periods << FactoryBot.create(:scheme_deactivation_period, deactivation_date: Time.zone.local(2022, 6, 7)) |
|
|
|
|
scheme.save! |
|
|
|
|
expect(scheme.status).to eq(:deactivated) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|