diff --git a/spec/features/sales_log_spec.rb b/spec/features/sales_log_spec.rb index 990b62096..8093f85dd 100644 --- a/spec/features/sales_log_spec.rb +++ b/spec/features/sales_log_spec.rb @@ -38,16 +38,16 @@ RSpec.describe "Sales Log Features" do visit("/sales-logs") click_button("Create a new sales log") click_link("Set up this sales log") - fill_in("sales_log[saledate(1i)]", with: "2022") - fill_in("sales_log[saledate(2i)]", with: "08") - fill_in("sales_log[saledate(3i)]", with: "10") + fill_in("sales_log[saledate(1i)]", with: Time.zone.today.year) + fill_in("sales_log[saledate(2i)]", with: Time.zone.today.month) + fill_in("sales_log[saledate(3i)]", with: Time.zone.today.day) click_button("Save and continue") fill_in("sales_log[purchid]", with: "PC123") click_button("Save and continue") log_id = page.current_path.scan(/\d/).join visit("sales-logs/#{log_id}/setup/check-answers") expect(page).to have_content("Sale completion date") - expect(page).to have_content("2022") + expect(page).to have_content(Time.zone.today.year) expect(page).to have_content("Purchaser code") expect(page).to have_content("PC123") end diff --git a/spec/models/sales_log_spec.rb b/spec/models/sales_log_spec.rb index 0991d5ff7..a660ea0ed 100644 --- a/spec/models/sales_log_spec.rb +++ b/spec/models/sales_log_spec.rb @@ -162,6 +162,12 @@ RSpec.describe SalesLog, type: :model do describe "derived variables" do let(:sales_log) { create(:sales_log, :completed) } + around do |example| + Timecop.freeze(Time.zone.local(2022, 7, 4)) do + example.run + end + Timecop.return + end it "correctly derives and saves exday, exmonth and exyear" do sales_log.update!(exdate: Time.gm(2022, 5, 4), saledate: Time.gm(2022, 7, 4), ownershipsch: 1, type: 18, staircase: 2, resale: 2, proplen: 0) diff --git a/spec/requests/sales_logs_controller_spec.rb b/spec/requests/sales_logs_controller_spec.rb index cc7df60e3..30d756356 100644 --- a/spec/requests/sales_logs_controller_spec.rb +++ b/spec/requests/sales_logs_controller_spec.rb @@ -65,7 +65,7 @@ RSpec.describe SalesLogsController, type: :request do context "with a request containing invalid json parameters" do let(:params) do { - "saledate": Date.new(2022, 4, 1), + "saledate": Time.zone.today, "purchid": "1", "ownershipsch": 1, "type": 2, @@ -236,17 +236,35 @@ RSpec.describe SalesLogsController, type: :request do end context "with year filter" do + around do |example| + Timecop.freeze(2022, 12, 1) do + example.run + end + Timecop.return + end + + before do + Timecop.freeze(2022, 4, 1) + sales_log_2022.update!(saledate: Time.zone.local(2022, 4, 1)) + Timecop.freeze(2023, 1, 1) + sales_log_2022.update!(saledate: Time.zone.local(2023, 1, 1)) + end + + after do + Timecop.unfreeze + end + let!(:sales_log_2022) do - FactoryBot.create(:sales_log, :in_progress, + FactoryBot.create(:sales_log, :completed, owning_organisation: organisation, - saledate: Time.zone.local(2022, 4, 1)) + created_by: user, + saledate: Time.zone.today) end let!(:sales_log_2023) do - sales_log = FactoryBot.build(:sales_log, :completed, - owning_organisation: organisation, - saledate: Time.zone.local(2023, 1, 1)) - sales_log.save!(validate: false) - sales_log + FactoryBot.create(:sales_log, + owning_organisation: organisation, + created_by: user, + saledate: Time.zone.today) end it "shows sales logs for multiple selected years" do diff --git a/spec/services/bulk_upload/lettings/validator_spec.rb b/spec/services/bulk_upload/lettings/validator_spec.rb index 41d42b25f..27d018229 100644 --- a/spec/services/bulk_upload/lettings/validator_spec.rb +++ b/spec/services/bulk_upload/lettings/validator_spec.rb @@ -387,6 +387,13 @@ RSpec.describe BulkUpload::Lettings::Validator do let(:log_1) { build(:lettings_log, :completed, renttype: 1, created_by: user) } let(:log_2) { build(:lettings_log, :completed, renttype: 1, created_by: user) } + around do |example| + Timecop.freeze(Time.zone.local(2023, 2, 22)) do + example.run + end + Timecop.return + end + before do file.write(BulkUpload::LettingsLogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) file.write(BulkUpload::LettingsLogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) diff --git a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb index 0c885f11d..8586a470c 100644 --- a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb @@ -6,7 +6,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do let(:now) { Time.zone.now.beginning_of_day } let(:attributes) { { bulk_upload: } } - let(:bulk_upload) { create(:bulk_upload, :lettings, user:, needstype: nil) } + let(:bulk_upload) { create(:bulk_upload, :lettings, user:, needstype: nil, year: 2023) } let(:user) { create(:user, organisation: owning_org) } let(:owning_org) { create(:organisation, :with_old_visible_id) } diff --git a/spec/services/bulk_upload/sales/log_creator_spec.rb b/spec/services/bulk_upload/sales/log_creator_spec.rb index 14a363a4c..299da7853 100644 --- a/spec/services/bulk_upload/sales/log_creator_spec.rb +++ b/spec/services/bulk_upload/sales/log_creator_spec.rb @@ -10,6 +10,14 @@ RSpec.describe BulkUpload::Sales::LogCreator do let(:path) { file_fixture("completed_2022_23_sales_bulk_upload.csv") } describe "#call" do + around do |example| + Timecop.freeze(Time.zone.local(2023, 2, 22)) do + Singleton.__init__(FormHandler) + example.run + end + Timecop.return + Singleton.__init__(FormHandler) + end context "when a valid csv with new log" do it "creates a new log" do expect { service.call }.to change(SalesLog, :count) diff --git a/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb index c108fbbcd..004e4977e 100644 --- a/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb @@ -107,6 +107,16 @@ RSpec.describe BulkUpload::Sales::Year2022::RowParser do } end + + around do |example| + Timecop.freeze(Time.zone.local(2023, 2, 22)) do + Singleton.__init__(FormHandler) + example.run + end + Timecop.return + Singleton.__init__(FormHandler) + end + describe "#blank_row?" do context "when a new object" do it "returns true" do diff --git a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb index 0f23dfbc0..545efd0f5 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -6,11 +6,9 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do let(:now) { Time.zone.parse("01/03/2023") } let(:attributes) { { bulk_upload: } } - let(:bulk_upload) { create(:bulk_upload, :sales, user:) } + let(:bulk_upload) { create(:bulk_upload, :sales, user:, year: 2023) } let(:user) { create(:user, organisation: owning_org) } - let(:owning_org) { create(:organisation, :with_old_visible_id) } - let(:setup_section_params) do { bulk_upload:, @@ -26,7 +24,6 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do field_14: "2", # joint purchase } end - let(:valid_attributes) do { bulk_upload:, @@ -34,7 +31,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do field_1: owning_org.old_visible_id, field_3: "22", field_4: "2", - field_5: "23", + field_5: "24", field_6: "test id", field_7: "1", field_8: "2", @@ -60,6 +57,8 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do field_37: "R", field_38: "32", field_39: "F", + field_40: "17", + field_41: "13", field_43: "2", field_44: "1", field_45: "0", @@ -70,6 +69,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do field_66: "E09000008", field_69: "1", field_70: "1", + field_71: "3", field_73: "3", field_75: "5", field_76: "3", @@ -85,11 +85,11 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do field_87: "1", field_88: "10", field_89: "10", - field_91: "2", + field_90: "1", field_92: "30", field_93: "3", field_94: "22", - field_95: "23", + field_95: "24", field_96: "3", field_97: "22", field_98: "3", @@ -110,6 +110,15 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do } end + around do |example| + Timecop.freeze(Time.zone.local(2024, 2, 22)) do + Singleton.__init__(FormHandler) + example.run + end + Timecop.return + Singleton.__init__(FormHandler) + end + describe "#blank_row?" do context "when a new object" do it "returns true" do