Browse Source

Update som sales log specs

pull/2445/head
Kat 2 years ago
parent
commit
f6588d9bfd
  1. 2
      app/models/derived_variables/sales_log_variables.rb
  2. 1
      spec/factories/sales_log.rb
  3. 82
      spec/models/sales_log_spec.rb

2
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

1
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

82
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

Loading…
Cancel
Save