From f6588d9bfd126d3eaf8e2008de6027b6fbef8af2 Mon Sep 17 00:00:00 2001 From: Kat Date: Mon, 3 Jun 2024 10:04:54 +0100 Subject: [PATCH] Update som sales log specs --- .../derived_variables/sales_log_variables.rb | 2 +- spec/factories/sales_log.rb | 1 + spec/models/sales_log_spec.rb | 82 ++++--------------- 3 files changed, 19 insertions(+), 66 deletions(-) diff --git a/app/models/derived_variables/sales_log_variables.rb b/app/models/derived_variables/sales_log_variables.rb index 185658eef..f23f9eb28 100644 --- a/app/models/derived_variables/sales_log_variables.rb +++ b/app/models/derived_variables/sales_log_variables.rb @@ -31,7 +31,7 @@ module DerivedVariables::SalesLogVariables if saledate && form.start_year_after_2024? && discounted_ownership_sale? self.ppostcode_full = postcode_full - self.ppcodenk = 0 if postcode_full.present? + self.ppcodenk = pcodenk self.prevloc = la self.is_previous_la_inferred = is_la_inferred self.previous_la_known = la_known diff --git a/spec/factories/sales_log.rb b/spec/factories/sales_log.rb index 27d960040..13e401323 100644 --- a/spec/factories/sales_log.rb +++ b/spec/factories/sales_log.rb @@ -53,6 +53,7 @@ FactoryBot.define do sex1 { "F" } ecstat1 { 1 } postcode_full { "A1 1AA" } + noint { 2 } uprn_known { 0 } end trait :completed do diff --git a/spec/models/sales_log_spec.rb b/spec/models/sales_log_spec.rb index 6493c100a..33e36bf03 100644 --- a/spec/models/sales_log_spec.rb +++ b/spec/models/sales_log_spec.rb @@ -6,17 +6,19 @@ RSpec.describe SalesLog, type: :model do let(:owning_organisation) { create(:organisation) } let(:assigned_to_user) { create(:user) } - before do - Timecop.freeze(Time.zone.local(2024, 3, 1)) - Singleton.__init__(FormHandler) - end + context "with shared examples" do + before do + Timecop.freeze(Time.zone.local(2024, 3, 1)) + Singleton.__init__(FormHandler) + end - after do - Timecop.return - Singleton.__init__(FormHandler) - end + after do + Timecop.return + Singleton.__init__(FormHandler) + end - include_examples "shared log examples", :sales_log + include_examples "shared log examples", :sales_log + end it "inherits from log" do expect(described_class).to be < Log @@ -143,11 +145,7 @@ RSpec.describe SalesLog, type: :model do context "when proplen is not given" do before do - Timecop.freeze(Time.zone.local(2023, 5, 1)) - end - - after do - Timecop.unfreeze + allow(Time).to receive(:now).and_return(Time.zone.local(2023, 5, 1)) end it "is set to completed for a log with a saledate before 23/24" do @@ -232,18 +230,16 @@ RSpec.describe SalesLog, type: :model do context "when filtering by year or nil" do before do - Timecop.freeze(Time.utc(2021, 5, 3)) create(:sales_log, :in_progress, saledate: nil) - create(:sales_log, :in_progress, saledate: Time.zone.local(2021, 4, 1)) - sales_log_3 = create(:sales_log, :in_progress) + sales_log_2021 = build(:sales_log, :in_progress) + sales_log_2021.saledate = Time.zone.local(2021, 4, 1) + sales_log_2021.save!(validate: false) + + sales_log_3 = build(:sales_log, :in_progress) sales_log_3.saledate = Time.zone.local(2022, 5, 1) sales_log_3.save!(validate: false) end - after do - Timecop.unfreeze - end - it "allows filtering on a single year or nil" do expect(described_class.filter_by_years_or_nil(%w[2021]).count).to eq(2) end @@ -580,36 +576,6 @@ RSpec.describe SalesLog, type: :model do expect(record_from_db["la"]).to eq("E08000003") end - context "with 22/23 logs" do - let(:address_sales_log_22_23) do - described_class.create({ - owning_organisation:, - assigned_to: assigned_to_user, - ppcodenk: 1, - postcode_full: "CA10 1AA", - saledate: Time.zone.local(2022, 5, 2), - }) - end - - before do - WebMock.stub_request(:get, /api\.postcodes\.io\/postcodes\/CA101AA/) - .to_return(status: 200, body: '{"status":200,"result":{"admin_district":"Cumberland","codes":{"admin_district":"E06000064"}}}', headers: {}) - - Timecop.freeze(2023, 5, 1) - Singleton.__init__(FormHandler) - end - - after do - Timecop.unfreeze - end - - it "correctly sets la as nil" do - record_from_db = described_class.find(address_sales_log_22_23.id) - expect(address_sales_log_22_23.la).to eq(nil) - expect(record_from_db["la"]).to eq(nil) - end - end - context "with 23/24 logs" do let(:address_sales_log_23_24) do described_class.create({ @@ -624,13 +590,6 @@ RSpec.describe SalesLog, type: :model do before do WebMock.stub_request(:get, /api\.postcodes\.io\/postcodes\/CA101AA/) .to_return(status: 200, body: '{"status":200,"result":{"admin_district":"Eden","codes":{"admin_district":"E07000030"}}}', headers: {}) - - Timecop.freeze(2023, 5, 2) - Singleton.__init__(FormHandler) - end - - after do - Timecop.unfreeze end it "correctly infers new la" do @@ -664,13 +623,6 @@ RSpec.describe SalesLog, type: :model do before do WebMock.stub_request(:get, /api\.postcodes\.io\/postcodes\/CA101AA/) .to_return(status: 200, body: '{"status":200,"result":{"admin_district":"Eden","codes":{"admin_district":"E07000030"}}}', headers: {}) - - Timecop.freeze(2024, 5, 2) - Singleton.__init__(FormHandler) - end - - after do - Timecop.unfreeze end it "sets previous postcode for discounted sale" do