Browse Source

Update tests

pull/3004/head
Manny Dinssa 5 months ago
parent
commit
fa9191362d
  1. 252
      spec/lib/tasks/update_manual_address_entry_selected_prexisting_logs_spec.rb

252
spec/lib/tasks/update_manual_address_entry_selected_prexisting_logs_spec.rb

@ -1,120 +1,184 @@
require "rails_helper" require "rails_helper"
require "rake" require "rake"
RSpec.describe "bulk_update:update_manual_address_entry_selected", type: :task do RSpec.describe "update_manual_address_entry_selected_preexisting_logs_spec", type: :task do
let(:task) { Rake::Task["bulk_update:update_manual_address_entry_selected"] } before do
Rake.application.rake_require("tasks/update_manual_address_entry_selected_prexisting_logs")
let(:lettings_log_uprn_entered) do Rake::Task.define_task(:environment)
build(:lettings_log, :completed, startdate: Time.zone.local(2024, 6, 1), needstype: 1, manual_address_entry_selected: false)
end end
let(:lettings_log_uprn_found) do describe "bulk_update:update_manual_address_entry_selected" do
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") let(:task) { Rake::Task["bulk_update:update_manual_address_entry_selected"] }
end
let(:lettings_log_address_fields_not_entered) do let(:lettings_log_uprn_entered) do
build(:lettings_log, :inprogress_without_address_fields, startdate: Time.zone.local(2024, 9, 1), needstype: 1) build(:lettings_log, :completed, startdate: Time.zone.local(2024, 6, 1), needstype: 1, manual_address_entry_selected: false)
end end
let(:lettings_log_address_manually_entered) do let(:lettings_log_uprn_found) do
build(:lettings_log, :completed_without_uprn, startdate: Time.zone.local(2024, 12, 1), needstype: 1) 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 end
let(:sales_log_uprn_entered) do let(:lettings_log_address_fields_not_entered) do
build(:sales_log, :completed, saledate: Time.zone.local(2024, 12, 1), manual_address_entry_selected: false) build(:lettings_log, :inprogress_without_address_fields, startdate: Time.zone.local(2024, 9, 1), needstype: 1)
end end
let(:sales_log_uprn_found) do let(:lettings_log_address_manually_entered) do
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") build(:lettings_log, :completed_without_uprn, startdate: Time.zone.local(2024, 12, 1), needstype: 1)
end end
let(:sales_log_address_fields_not_entered) do let(:sales_log_uprn_entered) do
build(:sales_log, :inprogress_without_address_fields, saledate: Time.zone.local(2024, 12, 30)) build(:sales_log, :completed, saledate: Time.zone.local(2024, 12, 1), manual_address_entry_selected: false)
end end
let(:sales_log_address_manually_entered) do let(:sales_log_uprn_found) do
build(:sales_log, :completed_without_uprn, saledate: Time.zone.local(2024, 12, 30)) 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 end
before do let(:sales_log_address_fields_not_entered) do
Rake.application.rake_require("tasks/update_manual_address_entry_selected_prexisting_logs") build(:sales_log, :inprogress_without_address_fields, saledate: Time.zone.local(2024, 12, 30))
Rake::Task.define_task(:environment) end
end
context "when running the task" do let(:sales_log_address_manually_entered) do
context "when logs do not meet the criteria" do build(:sales_log, :completed_without_uprn, saledate: Time.zone.local(2024, 12, 30))
before do end
lettings_log_uprn_found.save!(validate: false)
lettings_log_uprn_entered.save!(validate: false)
lettings_log_address_fields_not_entered.save!(validate: false)
sales_log_uprn_found.save!(validate: false)
sales_log_uprn_entered.save!(validate: false)
sales_log_address_fields_not_entered.save!(validate: false)
end
it "does not update logs with a UPRN entered" do context "when running the task" do
task.invoke context "when logs do not meet the criteria" do
lettings_log_uprn_entered.reload before do
sales_log_uprn_entered.reload lettings_log_uprn_found.save!(validate: false)
expect(lettings_log_uprn_entered.manual_address_entry_selected).to be false lettings_log_uprn_entered.save!(validate: false)
expect(lettings_log_uprn_entered.uprn).to eq("10033558653") lettings_log_address_fields_not_entered.save!(validate: false)
expect(sales_log_uprn_entered.manual_address_entry_selected).to be false
expect(sales_log_uprn_entered.uprn).to eq("10033558653")
end
it "does not update logs with a UPRN found" do sales_log_uprn_found.save!(validate: false)
task.invoke sales_log_uprn_entered.save!(validate: false)
lettings_log_uprn_found.reload sales_log_address_fields_not_entered.save!(validate: false)
sales_log_uprn_found.reload end
expect(lettings_log_uprn_found.manual_address_entry_selected).to be false
expect(lettings_log_uprn_found.uprn).to eq("10033558653") it "does not update logs with a UPRN entered" do
expect(sales_log_uprn_found.manual_address_entry_selected).to be false task.invoke
expect(sales_log_uprn_found.uprn).to eq("10033558653")
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("10033558653")
expect(sales_log_uprn_entered.manual_address_entry_selected).to be false
expect(sales_log_uprn_entered.uprn).to eq("10033558653")
end
it "does not update logs with a UPRN found" do
task.invoke
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("10033558653")
expect(sales_log_uprn_found.manual_address_entry_selected).to be false
expect(sales_log_uprn_found.uprn).to eq("10033558653")
end
it "does not update logs with no UPRN or address fields entered" do
task.invoke
lettings_log_address_fields_not_entered.reload
sales_log_address_fields_not_entered.reload
expect(lettings_log_address_fields_not_entered.manual_address_entry_selected).to be false
expect(sales_log_address_fields_not_entered.manual_address_entry_selected).to be false
end
end end
it "does not update logs with no UPRN or address fields entered" do context "when logs do meet the criteria" do
task.invoke before do
lettings_log_address_fields_not_entered.reload lettings_log_address_manually_entered.manual_address_entry_selected = false
sales_log_address_fields_not_entered.reload lettings_log_address_manually_entered.save!(validate: false)
expect(lettings_log_address_fields_not_entered.manual_address_entry_selected).to be false
expect(sales_log_address_fields_not_entered.manual_address_entry_selected).to be false sales_log_address_manually_entered.manual_address_entry_selected = 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")
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 true
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")
end
end end
end end
end
context "when logs do meet the criteria" do describe "bulk_update:update_postcode_full_preexisting_manual_entry_logs" do
before do let(:task) { Rake::Task["bulk_update:update_postcode_full_preexisting_manual_entry_logs"] }
lettings_log_address_manually_entered.manual_address_entry_selected = false
lettings_log_address_manually_entered.save!(validate: false) let(:lettings_log_to_fix) do
sales_log_address_manually_entered.manual_address_entry_selected = false build(:lettings_log, :inprogress_without_address_fields, startdate: Time.zone.local(2024, 6, 1), updated_at: Time.zone.parse("2025-03-19 16:30:00"))
sales_log_address_manually_entered.save!(validate: false) end
end
let(:lettings_log_not_to_fix) do
build(:lettings_log, :inprogress_without_address_fields, startdate: Time.zone.local(2024, 6, 1), updated_at: Time.zone.parse("2025-03-19 15:30:00"))
end
it "updates logs with an address manually entered" do before do
expect(lettings_log_address_manually_entered.manual_address_entry_selected).to be false lettings_log_to_fix.manual_address_entry_selected = true
expect(lettings_log_address_manually_entered.address_line1).to eq("1 Test Street") lettings_log_to_fix.address_line1 = "1 Test Street"
expect(lettings_log_address_manually_entered.address_line2).to eq("Testville") lettings_log_to_fix.address_line2 = "Testville"
expect(lettings_log_address_manually_entered.town_or_city).to eq("Testford") lettings_log_to_fix.town_or_city = "Testford"
expect(lettings_log_address_manually_entered.postcode_full).to eq("SW1 1AA") lettings_log_to_fix.postcode_full = nil
expect(sales_log_address_manually_entered.manual_address_entry_selected).to be false lettings_log_to_fix.address_line1_input = "1 Test Street"
expect(sales_log_address_manually_entered.address_line1).to eq("1 Test Street") lettings_log_to_fix.postcode_full_input = "SW1 2BB"
expect(sales_log_address_manually_entered.address_line2).to eq("Testville") lettings_log_to_fix.save!(validate: false)
expect(sales_log_address_manually_entered.town_or_city).to eq("Testford") lettings_log_not_to_fix.postcode_full = nil
expect(sales_log_address_manually_entered.postcode_full).to eq("SW1 1AA") lettings_log_not_to_fix.save!(validate: false)
end
context "when running the task" do
it "updates logs that meet the criteria" do
expect(lettings_log_to_fix.postcode_full).to be_nil
expect(lettings_log_to_fix.address_line1).to eq("1 Test Street")
expect(lettings_log_to_fix.address_line2).to eq("Testville")
expect(lettings_log_to_fix.town_or_city).to eq("Testford")
expect(lettings_log_to_fix.address_line1_input).to eq("1 Test Street")
expect(lettings_log_to_fix.postcode_full_input).to eq("SW1 2BB")
task.invoke task.invoke
lettings_log_address_manually_entered.reload
sales_log_address_manually_entered.reload lettings_log_to_fix.reload
expect(lettings_log_address_manually_entered.manual_address_entry_selected).to be true expect(lettings_log_to_fix.postcode_full).to eq(lettings_log_to_fix.postcode_full_input)
expect(lettings_log_address_manually_entered.address_line1).to eq("1 Test Street") end
expect(lettings_log_address_manually_entered.address_line2).to eq("Testville")
expect(lettings_log_address_manually_entered.town_or_city).to eq("Testford") it "does not update logs that do not meet the criteria" do
expect(lettings_log_address_manually_entered.postcode_full).to eq("SW1 1AA") task.invoke
expect(sales_log_address_manually_entered.manual_address_entry_selected).to be true
expect(sales_log_address_manually_entered.address_line1).to eq("1 Test Street") lettings_log_not_to_fix.reload
expect(sales_log_address_manually_entered.address_line2).to eq("Testville")
expect(sales_log_address_manually_entered.town_or_city).to eq("Testford") expect(lettings_log_not_to_fix.postcode_full).to be_nil
expect(sales_log_address_manually_entered.postcode_full).to eq("SW1 1AA")
end end
end end
end end

Loading…
Cancel
Save