diff --git a/spec/factories/lettings_log.rb b/spec/factories/lettings_log.rb index 9b620f2b5..3eddfa12e 100644 --- a/spec/factories/lettings_log.rb +++ b/spec/factories/lettings_log.rb @@ -220,5 +220,21 @@ FactoryBot.define do instance.save!(validate: false) end end + trait :completed_without_uprn do + completed + manual_address_entry_selected { false } + after(:build) do |log| + log.uprn = nil + log.uprn_selection = nil + log.uprn_known = 0 + end + + after(:build) do |log| + log.address_line1 = "1 Test Street" + log.address_line2 = "Testville" + log.town_or_city = "Testford" + log.postcode_full = "SW1 1AA" + end + end end end diff --git a/spec/factories/sales_log.rb b/spec/factories/sales_log.rb index 827cc0be0..be210282a 100644 --- a/spec/factories/sales_log.rb +++ b/spec/factories/sales_log.rb @@ -235,5 +235,21 @@ FactoryBot.define do instance.save!(validate: false) end end + trait :completed_without_uprn do + completed + manual_address_entry_selected { false } + after(:build) do |log| + log.uprn = nil + log.uprn_selection = nil + log.uprn_known = 0 + end + + after(:build) do |log| + log.address_line1 = "1 Test Street" + log.address_line2 = "Testville" + log.town_or_city = "Testford" + log.postcode_full = "SW1 1AA" + end + end end end diff --git a/spec/lib/tasks/update_manual_address_entry_selected_prexisting_logs_spec.rb b/spec/lib/tasks/update_manual_address_entry_selected_prexisting_logs_spec.rb index dd2c0e176..a2e079256 100644 --- a/spec/lib/tasks/update_manual_address_entry_selected_prexisting_logs_spec.rb +++ b/spec/lib/tasks/update_manual_address_entry_selected_prexisting_logs_spec.rb @@ -1,4 +1,3 @@ -# spec/tasks/update_manual_address_entry_selected_prexisting_logs_spec.rb require "rails_helper" require "rake" @@ -6,78 +5,27 @@ RSpec.describe "bulk_update:update_manual_address_entry_selected", type: :task d let(:task) { Rake::Task["bulk_update:update_manual_address_entry_selected"] } let(:lettings_log_uprn_entered) do - create(:lettings_log, :completed, - needstype: 1, - manual_address_entry_selected: false, - uprn: "123", - address_line1: nil, - address_line2: nil, - town_or_city: nil, - postcode_full: nil, - address_line1_input: nil, - postcode_full_input: nil) + build(:lettings_log, :completed, startdate: Time.zone.local(2024, 6, 1), needstype: 1, manual_address_entry_selected: false) end let(:lettings_log_uprn_found) do - create(:lettings_log, :completed, - needstype: 1, - manual_address_entry_selected: false, - uprn: "123", - address_line1: nil, - address_line2: nil, - town_or_city: nil, - postcode_full: nil, - address_line1_input: "1 Test Street", - postcode_full_input: "SW1 1AA") + build(:lettings_log, :completed, startdate: Time.zone.local(2024, 9, 1), needstype: 1, manual_address_entry_selected: false, address_line1_input: "1 Test Street", postcode_full_input: "SW1 1AA") end let(:lettings_log_address_manually_entered) do - create(:lettings_log, :completed, - needstype: 1, - manual_address_entry_selected: false, - uprn: nil, - address_line1: "1 Test Street", - address_line2: "Testville", - town_or_city: "Testford", - postcode_full: "SW1 1AA", - address_line1_input: nil, - postcode_full_input: nil) + build(:lettings_log, :completed_without_uprn, startdate: Time.zone.local(2024, 12, 1), needstype: 1, manual_address_entry_selected: false) end let(:sales_log_uprn_entered) do - create(:sales_log, :completed, - manual_address_entry_selected: false, - uprn: "123", - address_line1: nil, - address_line2: nil, - town_or_city: nil, - postcode_full: nil, - address_line1_input: nil, - postcode_full_input: nil) + build(:sales_log, :completed, saledate: Time.zone.local(2024, 12, 1), manual_address_entry_selected: false) end let(:sales_log_uprn_found) do - create(:sales_log, :completed, - manual_address_entry_selected: false, - uprn: "123", - address_line1: nil, - address_line2: nil, - town_or_city: nil, - postcode_full: nil, - address_line1_input: "1 Test Street", - postcode_full_input: "SW1 1AA") + build(:sales_log, :completed, saledate: Time.zone.local(2024, 7, 1), manual_address_entry_selected: false, address_line1_input: "1 Test Street", postcode_full_input: "SW1 1AA") end let(:sales_log_address_manually_entered) do - create(:sales_log, :completed, - manual_address_entry_selected: false, - uprn: nil, - address_line1: "1 Test Street", - address_line2: "Testville", - town_or_city: "Testford", - postcode_full: "SW1 1AA", - address_line1_input: nil, - postcode_full_input: nil) + build(:sales_log, :completed_without_uprn, saledate: Time.zone.local(2024, 12, 30), manual_address_entry_selected: false) end before do @@ -87,14 +35,21 @@ RSpec.describe "bulk_update:update_manual_address_entry_selected", type: :task d context "when running the task" do context "when logs do not meet the criteria" do + before do + lettings_log_uprn_found.save!(validate: false) + lettings_log_uprn_entered.save!(validate: false) + sales_log_uprn_found.save!(validate: false) + sales_log_uprn_entered.save!(validate: false) + end + it "does not update logs with a UPRN entered" do task.invoke lettings_log_uprn_entered.reload sales_log_uprn_entered.reload expect(lettings_log_uprn_entered.manual_address_entry_selected).to be false - expect(lettings_log_uprn_entered.uprn).to eq("123") + expect(lettings_log_uprn_entered.uprn).to eq("10033558653") expect(sales_log_uprn_entered.manual_address_entry_selected).to be false - expect(sales_log_uprn_entered.uprn).to eq("123") + expect(sales_log_uprn_entered.uprn).to eq("10033558653") end it "does not update logs with a UPRN found" do @@ -102,17 +57,34 @@ RSpec.describe "bulk_update:update_manual_address_entry_selected", type: :task d lettings_log_uprn_found.reload sales_log_uprn_found.reload expect(lettings_log_uprn_found.manual_address_entry_selected).to be false - expect(lettings_log_uprn_found.uprn).to eq("123") + expect(lettings_log_uprn_found.uprn).to eq("10033558653") expect(sales_log_uprn_found.manual_address_entry_selected).to be false - expect(sales_log_uprn_found.uprn).to eq("123") + expect(sales_log_uprn_found.uprn).to eq("10033558653") end end context "when logs do meet the criteria" do + before do + lettings_log_address_manually_entered.save!(validate: false) + sales_log_address_manually_entered.save!(validate: false) + end + it "updates logs with an address manually entered" do + expect(lettings_log_address_manually_entered.manual_address_entry_selected).to be false + expect(lettings_log_address_manually_entered.address_line1).to eq("1 Test Street") + expect(lettings_log_address_manually_entered.address_line2).to eq("Testville") + expect(lettings_log_address_manually_entered.town_or_city).to eq("Testford") + expect(lettings_log_address_manually_entered.postcode_full).to eq("SW1 1AA") + expect(sales_log_address_manually_entered.manual_address_entry_selected).to be false + expect(sales_log_address_manually_entered.address_line1).to eq("1 Test Street") + expect(sales_log_address_manually_entered.address_line2).to eq("Testville") + expect(sales_log_address_manually_entered.town_or_city).to eq("Testford") + expect(sales_log_address_manually_entered.postcode_full).to eq("SW1 1AA") + task.invoke lettings_log_address_manually_entered.reload sales_log_address_manually_entered.reload + expect(lettings_log_address_manually_entered.manual_address_entry_selected).to be true expect(lettings_log_address_manually_entered.address_line1).to eq("1 Test Street") expect(lettings_log_address_manually_entered.address_line2).to eq("Testville")