From 535e0de72c6a7af97a11f3133a4e90f02f996d23 Mon Sep 17 00:00:00 2001 From: Rachael Booth Date: Thu, 29 Feb 2024 17:09:57 +0000 Subject: [PATCH] Update bulk upload year_spec tests --- .../forms/bulk_upload_lettings/year_spec.rb | 47 +++++++++++++++-- .../forms/bulk_upload_sales/year_spec.rb | 51 ++++++++++++++++--- 2 files changed, 87 insertions(+), 11 deletions(-) diff --git a/spec/models/forms/bulk_upload_lettings/year_spec.rb b/spec/models/forms/bulk_upload_lettings/year_spec.rb index ebb65e517..241a0a918 100644 --- a/spec/models/forms/bulk_upload_lettings/year_spec.rb +++ b/spec/models/forms/bulk_upload_lettings/year_spec.rb @@ -4,9 +4,50 @@ RSpec.describe Forms::BulkUploadLettings::Year do subject(:form) { described_class.new } describe "#options" do - it "returns correct years" do - expect(form.options.map(&:id)).to eql([2023, 2022]) - expect(form.options.map(&:name)).to eql(%w[2023/2024 2022/2023]) + context "when in a crossover period" do + before do + Timecop.freeze(2024, 4, 1) + end + + after do + Timecop.return + end + + it "returns current and previous years" do + expect(form.options.map(&:id)).to eql([2024, 2023]) + expect(form.options.map(&:name)).to eql(%w[2024/2025 2023/2024]) + end + end + + context "when not in a crossover period" do + before do + Timecop.freeze(2024, 3, 1) + end + + after do + Timecop.return + end + + it "returns the current year" do + expect(form.options.map(&:id)).to eql([2023]) + expect(form.options.map(&:name)).to eql(%w[2023/2024]) + end + end + + context "when allow_future_form_use is toggled on" do + before do + Timecop.freeze(2024, 3, 1) + allow(FeatureToggle).to receive(:allow_future_form_use?).and_return(true) + end + + after do + Timecop.return + end + + it "returns current and next years" do + expect(form.options.map(&:id)).to eql([2023, 2024]) + expect(form.options.map(&:name)).to eql(%w[2023/2024 2024/2025]) + end end end end diff --git a/spec/models/forms/bulk_upload_sales/year_spec.rb b/spec/models/forms/bulk_upload_sales/year_spec.rb index e8f2a04e5..654a5760e 100644 --- a/spec/models/forms/bulk_upload_sales/year_spec.rb +++ b/spec/models/forms/bulk_upload_sales/year_spec.rb @@ -3,16 +3,51 @@ require "rails_helper" RSpec.describe Forms::BulkUploadSales::Year do subject(:form) { described_class.new } - around do |example| - Timecop.freeze(Time.zone.now) do - example.run + describe "#options" do + context "when in a crossover period" do + before do + Timecop.freeze(2024, 4, 1) + end + + after do + Timecop.return + end + + it "returns current and previous years" do + expect(form.options.map(&:id)).to eql([2024, 2023]) + expect(form.options.map(&:name)).to eql(%w[2024/2025 2023/2024]) + end end - end - describe "#options" do - it "returns correct years" do - expect(form.options.map(&:id)).to eql([2023, 2022]) - expect(form.options.map(&:name)).to eql(%w[2023/2024 2022/2023]) + context "when not in a crossover period" do + before do + Timecop.freeze(2024, 3, 1) + end + + after do + Timecop.return + end + + it "returns the current year" do + expect(form.options.map(&:id)).to eql([2023]) + expect(form.options.map(&:name)).to eql(%w[2023/2024]) + end + end + + context "when allow_future_form_use is toggled on" do + before do + Timecop.freeze(2024, 3, 1) + allow(FeatureToggle).to receive(:allow_future_form_use?).and_return(true) + end + + after do + Timecop.return + end + + it "returns current and next years" do + expect(form.options.map(&:id)).to eql([2023, 2024]) + expect(form.options.map(&:name)).to eql(%w[2023/2024 2024/2025]) + end end end end