|
|
|
|
@ -55,6 +55,7 @@ RSpec.describe "data_import" do
|
|
|
|
|
|
|
|
|
|
context "when the rake task is run" do |
|
|
|
|
let(:addresses_csv_path) { "addresses_reimport_123.csv" } |
|
|
|
|
let(:all_addresses_csv_path) { "all_addresses_reimport_123.csv" } |
|
|
|
|
let(:wrong_file_path) { "/test/no_csv_here.csv" } |
|
|
|
|
let!(:lettings_log) do |
|
|
|
|
create(:lettings_log, |
|
|
|
|
@ -91,83 +92,168 @@ RSpec.describe "data_import" do
|
|
|
|
|
allow(storage_service).to receive(:get_file_io) |
|
|
|
|
.with("addresses_reimport_123.csv") |
|
|
|
|
.and_return(replace_entity_ids(lettings_log, lettings_logs[0], lettings_logs[1], lettings_logs[2], File.open("./spec/fixtures/files/addresses_reimport.csv").read)) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "updates the log address when old address was not given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
lettings_log.reload |
|
|
|
|
expect(lettings_log.uprn_known).to eq(0) |
|
|
|
|
expect(lettings_log.uprn).to eq(nil) |
|
|
|
|
expect(lettings_log.uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_log.address_line1).to eq("address 1") |
|
|
|
|
expect(lettings_log.address_line2).to eq("address 2") |
|
|
|
|
expect(lettings_log.town_or_city).to eq("town") |
|
|
|
|
expect(lettings_log.county).to eq("county") |
|
|
|
|
expect(lettings_log.postcode_known).to eq(1) |
|
|
|
|
expect(lettings_log.postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(lettings_log.la).to eq("E08000035") |
|
|
|
|
expect(lettings_log.is_la_inferred).to eq(true) |
|
|
|
|
allow(storage_service).to receive(:get_file_io) |
|
|
|
|
.with("all_addresses_reimport_123.csv") |
|
|
|
|
.and_return(replace_entity_ids(lettings_log, lettings_logs[0], lettings_logs[1], lettings_logs[2], File.open("./spec/fixtures/files/addresses_reimport_all_logs.csv").read)) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "updates the log address when old address was given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
lettings_logs[0].reload |
|
|
|
|
expect(lettings_logs[0].uprn_known).to eq(0) |
|
|
|
|
expect(lettings_logs[0].uprn).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].address_line1).to eq("address 3") |
|
|
|
|
expect(lettings_logs[0].address_line2).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].town_or_city).to eq("city") |
|
|
|
|
expect(lettings_logs[0].county).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].postcode_known).to eq(1) |
|
|
|
|
expect(lettings_logs[0].postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(lettings_logs[0].la).to eq("E08000035") |
|
|
|
|
expect(lettings_logs[0].is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
context "when the file contains issue type column" do |
|
|
|
|
it "updates the log address when old address was not given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
lettings_log.reload |
|
|
|
|
expect(lettings_log.uprn_known).to eq(0) |
|
|
|
|
expect(lettings_log.uprn).to eq(nil) |
|
|
|
|
expect(lettings_log.uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_log.address_line1).to eq("address 1") |
|
|
|
|
expect(lettings_log.address_line2).to eq("address 2") |
|
|
|
|
expect(lettings_log.town_or_city).to eq("town") |
|
|
|
|
expect(lettings_log.county).to eq("county") |
|
|
|
|
expect(lettings_log.postcode_known).to eq(1) |
|
|
|
|
expect(lettings_log.postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(lettings_log.la).to eq("E08000035") |
|
|
|
|
expect(lettings_log.is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when uprn is given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
lettings_logs[1].reload |
|
|
|
|
expect(lettings_logs[1].uprn_known).to eq(1) |
|
|
|
|
expect(lettings_logs[1].uprn).to eq("1") |
|
|
|
|
expect(lettings_logs[1].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_logs[1].address_line1).to eq("wrong address line1") |
|
|
|
|
expect(lettings_logs[1].address_line2).to eq("wrong address 2") |
|
|
|
|
expect(lettings_logs[1].town_or_city).to eq("wrong town") |
|
|
|
|
expect(lettings_logs[1].county).to eq("wrong city") |
|
|
|
|
expect(lettings_logs[1].postcode_known).to eq(1) |
|
|
|
|
expect(lettings_logs[1].postcode_full).to eq("A1 1AA") |
|
|
|
|
expect(lettings_logs[1].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
it "updates the log address when old address was given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
lettings_logs[0].reload |
|
|
|
|
expect(lettings_logs[0].uprn_known).to eq(0) |
|
|
|
|
expect(lettings_logs[0].uprn).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].address_line1).to eq("address 3") |
|
|
|
|
expect(lettings_logs[0].address_line2).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].town_or_city).to eq("city") |
|
|
|
|
expect(lettings_logs[0].county).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].postcode_known).to eq(1) |
|
|
|
|
expect(lettings_logs[0].postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(lettings_logs[0].la).to eq("E08000035") |
|
|
|
|
expect(lettings_logs[0].is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when all required address fields are not present" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
lettings_logs[2].reload |
|
|
|
|
expect(lettings_logs[2].uprn_known).to eq(1) |
|
|
|
|
expect(lettings_logs[2].uprn).to eq("1") |
|
|
|
|
expect(lettings_logs[2].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_logs[2].address_line1).to eq("wrong address line1") |
|
|
|
|
expect(lettings_logs[2].address_line2).to eq("wrong address 2") |
|
|
|
|
expect(lettings_logs[2].town_or_city).to eq("wrong town") |
|
|
|
|
expect(lettings_logs[2].county).to eq("wrong city") |
|
|
|
|
expect(lettings_logs[2].postcode_known).to eq(1) |
|
|
|
|
expect(lettings_logs[2].postcode_full).to eq("A1 1AA") |
|
|
|
|
expect(lettings_logs[2].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
it "does not update log address when uprn is given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
lettings_logs[1].reload |
|
|
|
|
expect(lettings_logs[1].uprn_known).to eq(1) |
|
|
|
|
expect(lettings_logs[1].uprn).to eq("1") |
|
|
|
|
expect(lettings_logs[1].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_logs[1].address_line1).to eq("wrong address line1") |
|
|
|
|
expect(lettings_logs[1].address_line2).to eq("wrong address 2") |
|
|
|
|
expect(lettings_logs[1].town_or_city).to eq("wrong town") |
|
|
|
|
expect(lettings_logs[1].county).to eq("wrong city") |
|
|
|
|
expect(lettings_logs[1].postcode_known).to eq(1) |
|
|
|
|
expect(lettings_logs[1].postcode_full).to eq("A1 1AA") |
|
|
|
|
expect(lettings_logs[1].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when all required address fields are not present" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
lettings_logs[2].reload |
|
|
|
|
expect(lettings_logs[2].uprn_known).to eq(1) |
|
|
|
|
expect(lettings_logs[2].uprn).to eq("1") |
|
|
|
|
expect(lettings_logs[2].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_logs[2].address_line1).to eq("wrong address line1") |
|
|
|
|
expect(lettings_logs[2].address_line2).to eq("wrong address 2") |
|
|
|
|
expect(lettings_logs[2].town_or_city).to eq("wrong town") |
|
|
|
|
expect(lettings_logs[2].county).to eq("wrong city") |
|
|
|
|
expect(lettings_logs[2].postcode_known).to eq(1) |
|
|
|
|
expect(lettings_logs[2].postcode_full).to eq("A1 1AA") |
|
|
|
|
expect(lettings_logs[2].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "logs the progress of the update" do |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated lettings log #{lettings_log.id}, with address: address 1, address 2, town, county, B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated lettings log #{lettings_logs[0].id}, with address: address 3, , city, , B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Lettings log with ID #{lettings_logs[1].id} contains uprn, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Lettings log with ID #{lettings_logs[2].id} is missing required address data, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Lettings log ID not provided for address: Some Place, , Bristol, , BS1 1AD") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Could not find a lettings log with id fake_id") |
|
|
|
|
|
|
|
|
|
it "logs the progress of the update" do |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated lettings log #{lettings_log.id}, with address: address 1, address 2, town, county, B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated lettings log #{lettings_logs[0].id}, with address: address 3, , city, , B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Lettings log with ID #{lettings_logs[1].id} contains uprn, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Lettings log with ID #{lettings_logs[2].id} is missing required address data, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Lettings log ID not provided for address: Some Place, , Bristol, , BS1 1AD") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Could not find a lettings log with id fake_id") |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
it "raises an error when no path is given" do |
|
|
|
|
expect { task.invoke(nil) }.to raise_error(RuntimeError, "Usage: rake data_import:import_lettings_addresses_from_csv['csv_file_name']") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "raises an error when no path is given" do |
|
|
|
|
expect { task.invoke(nil) }.to raise_error(RuntimeError, "Usage: rake data_import:import_lettings_addresses_from_csv['csv_file_name']") |
|
|
|
|
context "when the file does not contain issue type column" do |
|
|
|
|
it "updates the log address when old address was not given" do |
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
lettings_log.reload |
|
|
|
|
expect(lettings_log.uprn_known).to eq(0) |
|
|
|
|
expect(lettings_log.uprn).to eq(nil) |
|
|
|
|
expect(lettings_log.uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_log.address_line1).to eq("address 1") |
|
|
|
|
expect(lettings_log.address_line2).to eq("address 2") |
|
|
|
|
expect(lettings_log.town_or_city).to eq("town") |
|
|
|
|
expect(lettings_log.county).to eq("county") |
|
|
|
|
expect(lettings_log.postcode_known).to eq(1) |
|
|
|
|
expect(lettings_log.postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(lettings_log.la).to eq("E08000035") |
|
|
|
|
expect(lettings_log.is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "updates the log address when old address was given" do |
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
lettings_logs[0].reload |
|
|
|
|
expect(lettings_logs[0].uprn_known).to eq(0) |
|
|
|
|
expect(lettings_logs[0].uprn).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].address_line1).to eq("address 3") |
|
|
|
|
expect(lettings_logs[0].address_line2).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].town_or_city).to eq("city") |
|
|
|
|
expect(lettings_logs[0].county).to eq(nil) |
|
|
|
|
expect(lettings_logs[0].postcode_known).to eq(1) |
|
|
|
|
expect(lettings_logs[0].postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(lettings_logs[0].la).to eq("E08000035") |
|
|
|
|
expect(lettings_logs[0].is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when uprn is given" do |
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
lettings_logs[1].reload |
|
|
|
|
expect(lettings_logs[1].uprn_known).to eq(1) |
|
|
|
|
expect(lettings_logs[1].uprn).to eq("1") |
|
|
|
|
expect(lettings_logs[1].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_logs[1].address_line1).to eq("wrong address line1") |
|
|
|
|
expect(lettings_logs[1].address_line2).to eq("wrong address 2") |
|
|
|
|
expect(lettings_logs[1].town_or_city).to eq("wrong town") |
|
|
|
|
expect(lettings_logs[1].county).to eq("wrong city") |
|
|
|
|
expect(lettings_logs[1].postcode_known).to eq(1) |
|
|
|
|
expect(lettings_logs[1].postcode_full).to eq("A1 1AA") |
|
|
|
|
expect(lettings_logs[1].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when all required address fields are not present" do |
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
lettings_logs[2].reload |
|
|
|
|
expect(lettings_logs[2].uprn_known).to eq(1) |
|
|
|
|
expect(lettings_logs[2].uprn).to eq("1") |
|
|
|
|
expect(lettings_logs[2].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(lettings_logs[2].address_line1).to eq("wrong address line1") |
|
|
|
|
expect(lettings_logs[2].address_line2).to eq("wrong address 2") |
|
|
|
|
expect(lettings_logs[2].town_or_city).to eq("wrong town") |
|
|
|
|
expect(lettings_logs[2].county).to eq("wrong city") |
|
|
|
|
expect(lettings_logs[2].postcode_known).to eq(1) |
|
|
|
|
expect(lettings_logs[2].postcode_full).to eq("A1 1AA") |
|
|
|
|
expect(lettings_logs[2].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "logs the progress of the update" do |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated lettings log #{lettings_log.id}, with address: address 1, address 2, town, county, B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated lettings log #{lettings_logs[0].id}, with address: address 3, , city, , B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Lettings log with ID #{lettings_logs[1].id} contains uprn, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Lettings log with ID #{lettings_logs[2].id} is missing required address data, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Lettings log ID not provided for address: Some Place, , Bristol, , BS1 1AD") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Could not find a lettings log with id fake_id") |
|
|
|
|
|
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "raises an error when no path is given" do |
|
|
|
|
expect { task.invoke(nil) }.to raise_error(RuntimeError, "Usage: rake data_import:import_lettings_addresses_from_csv['csv_file_name']") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
@ -188,6 +274,7 @@ RSpec.describe "data_import" do
|
|
|
|
|
|
|
|
|
|
context "when the rake task is run" do |
|
|
|
|
let(:addresses_csv_path) { "addresses_reimport_123.csv" } |
|
|
|
|
let(:all_addresses_csv_path) { "all_addresses_reimport_123.csv" } |
|
|
|
|
let(:wrong_file_path) { "/test/no_csv_here.csv" } |
|
|
|
|
let!(:sales_log) do |
|
|
|
|
create(:sales_log, |
|
|
|
|
@ -208,83 +295,168 @@ RSpec.describe "data_import" do
|
|
|
|
|
allow(storage_service).to receive(:get_file_io) |
|
|
|
|
.with("addresses_reimport_123.csv") |
|
|
|
|
.and_return(replace_entity_ids(sales_log, sales_logs[0], sales_logs[1], sales_logs[2], File.open("./spec/fixtures/files/sales_addresses_reimport.csv").read)) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "updates the log address when old address was not given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
sales_log.reload |
|
|
|
|
expect(sales_log.uprn_known).to eq(0) |
|
|
|
|
expect(sales_log.uprn).to eq(nil) |
|
|
|
|
expect(sales_log.uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_log.address_line1).to eq("address 1") |
|
|
|
|
expect(sales_log.address_line2).to eq("address 2") |
|
|
|
|
expect(sales_log.town_or_city).to eq("town") |
|
|
|
|
expect(sales_log.county).to eq("county") |
|
|
|
|
expect(sales_log.pcodenk).to eq(0) |
|
|
|
|
expect(sales_log.postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(sales_log.la).to eq("E08000035") |
|
|
|
|
expect(sales_log.is_la_inferred).to eq(true) |
|
|
|
|
allow(storage_service).to receive(:get_file_io) |
|
|
|
|
.with("all_addresses_reimport_123.csv") |
|
|
|
|
.and_return(replace_entity_ids(sales_log, sales_logs[0], sales_logs[1], sales_logs[2], File.open("./spec/fixtures/files/sales_addresses_reimport_all_logs.csv").read)) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "updates the log address when old address was given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
sales_logs[0].reload |
|
|
|
|
expect(sales_logs[0].uprn_known).to eq(0) |
|
|
|
|
expect(sales_logs[0].uprn).to eq(nil) |
|
|
|
|
expect(sales_logs[0].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_logs[0].address_line1).to eq("address 3") |
|
|
|
|
expect(sales_logs[0].address_line2).to eq(nil) |
|
|
|
|
expect(sales_logs[0].town_or_city).to eq("city") |
|
|
|
|
expect(sales_logs[0].county).to eq(nil) |
|
|
|
|
expect(sales_logs[0].pcodenk).to eq(0) |
|
|
|
|
expect(sales_logs[0].postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(sales_logs[0].la).to eq("E08000035") |
|
|
|
|
expect(sales_logs[0].is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
context "when the file contains issue type column" do |
|
|
|
|
it "updates the log address when old address was not given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
sales_log.reload |
|
|
|
|
expect(sales_log.uprn_known).to eq(0) |
|
|
|
|
expect(sales_log.uprn).to eq(nil) |
|
|
|
|
expect(sales_log.uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_log.address_line1).to eq("address 1") |
|
|
|
|
expect(sales_log.address_line2).to eq("address 2") |
|
|
|
|
expect(sales_log.town_or_city).to eq("town") |
|
|
|
|
expect(sales_log.county).to eq("county") |
|
|
|
|
expect(sales_log.pcodenk).to eq(0) |
|
|
|
|
expect(sales_log.postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(sales_log.la).to eq("E08000035") |
|
|
|
|
expect(sales_log.is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when uprn is given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
sales_logs[1].reload |
|
|
|
|
expect(sales_logs[1].uprn_known).to eq(1) |
|
|
|
|
expect(sales_logs[1].uprn).to eq("1") |
|
|
|
|
expect(sales_logs[1].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_logs[1].address_line1).to eq("Wrong Address Line1") |
|
|
|
|
expect(sales_logs[1].address_line2).to eq("Double Dependent Locality") |
|
|
|
|
expect(sales_logs[1].town_or_city).to eq("Westminster") |
|
|
|
|
expect(sales_logs[1].county).to eq(nil) |
|
|
|
|
expect(sales_logs[1].pcodenk).to eq(0) |
|
|
|
|
expect(sales_logs[1].postcode_full).to eq("LS16 6FT") |
|
|
|
|
expect(sales_logs[1].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
it "updates the log address when old address was given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
sales_logs[0].reload |
|
|
|
|
expect(sales_logs[0].uprn_known).to eq(0) |
|
|
|
|
expect(sales_logs[0].uprn).to eq(nil) |
|
|
|
|
expect(sales_logs[0].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_logs[0].address_line1).to eq("address 3") |
|
|
|
|
expect(sales_logs[0].address_line2).to eq(nil) |
|
|
|
|
expect(sales_logs[0].town_or_city).to eq("city") |
|
|
|
|
expect(sales_logs[0].county).to eq(nil) |
|
|
|
|
expect(sales_logs[0].pcodenk).to eq(0) |
|
|
|
|
expect(sales_logs[0].postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(sales_logs[0].la).to eq("E08000035") |
|
|
|
|
expect(sales_logs[0].is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when all required address fields are not present" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
sales_logs[2].reload |
|
|
|
|
expect(sales_logs[2].uprn_known).to eq(1) |
|
|
|
|
expect(sales_logs[2].uprn).to eq("1") |
|
|
|
|
expect(sales_logs[2].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_logs[2].address_line1).to eq("Wrong Address Line1") |
|
|
|
|
expect(sales_logs[2].address_line2).to eq("Double Dependent Locality") |
|
|
|
|
expect(sales_logs[2].town_or_city).to eq("Westminster") |
|
|
|
|
expect(sales_logs[2].county).to eq(nil) |
|
|
|
|
expect(sales_logs[2].pcodenk).to eq(0) |
|
|
|
|
expect(sales_logs[2].postcode_full).to eq("LS16 6FT") |
|
|
|
|
expect(sales_logs[2].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
it "does not update log address when uprn is given" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
sales_logs[1].reload |
|
|
|
|
expect(sales_logs[1].uprn_known).to eq(1) |
|
|
|
|
expect(sales_logs[1].uprn).to eq("1") |
|
|
|
|
expect(sales_logs[1].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_logs[1].address_line1).to eq("Wrong Address Line1") |
|
|
|
|
expect(sales_logs[1].address_line2).to eq("Double Dependent Locality") |
|
|
|
|
expect(sales_logs[1].town_or_city).to eq("Westminster") |
|
|
|
|
expect(sales_logs[1].county).to eq(nil) |
|
|
|
|
expect(sales_logs[1].pcodenk).to eq(0) |
|
|
|
|
expect(sales_logs[1].postcode_full).to eq("LS16 6FT") |
|
|
|
|
expect(sales_logs[1].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when all required address fields are not present" do |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
sales_logs[2].reload |
|
|
|
|
expect(sales_logs[2].uprn_known).to eq(1) |
|
|
|
|
expect(sales_logs[2].uprn).to eq("1") |
|
|
|
|
expect(sales_logs[2].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_logs[2].address_line1).to eq("Wrong Address Line1") |
|
|
|
|
expect(sales_logs[2].address_line2).to eq("Double Dependent Locality") |
|
|
|
|
expect(sales_logs[2].town_or_city).to eq("Westminster") |
|
|
|
|
expect(sales_logs[2].county).to eq(nil) |
|
|
|
|
expect(sales_logs[2].pcodenk).to eq(0) |
|
|
|
|
expect(sales_logs[2].postcode_full).to eq("LS16 6FT") |
|
|
|
|
expect(sales_logs[2].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "logs the progress of the update" do |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated sales log #{sales_log.id}, with address: address 1, address 2, town, county, B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated sales log #{sales_logs[0].id}, with address: address 3, , city, , B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Sales log with ID #{sales_logs[1].id} contains uprn, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Sales log with ID #{sales_logs[2].id} is missing required address data, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Sales log ID not provided for address: Some Place, , Bristol, , BS1 1AD") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Could not find a sales log with id fake_id") |
|
|
|
|
|
|
|
|
|
it "logs the progress of the update" do |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated sales log #{sales_log.id}, with address: address 1, address 2, town, county, B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated sales log #{sales_logs[0].id}, with address: address 3, , city, , B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Sales log with ID #{sales_logs[1].id} contains uprn, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Sales log with ID #{sales_logs[2].id} is missing required address data, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Sales log ID not provided for address: Some Place, , Bristol, , BS1 1AD") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Could not find a sales log with id fake_id") |
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
task.invoke(addresses_csv_path) |
|
|
|
|
it "raises an error when no path is given" do |
|
|
|
|
expect { task.invoke(nil) }.to raise_error(RuntimeError, "Usage: rake data_import:import_sales_addresses_from_csv['csv_file_name']") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "raises an error when no path is given" do |
|
|
|
|
expect { task.invoke(nil) }.to raise_error(RuntimeError, "Usage: rake data_import:import_sales_addresses_from_csv['csv_file_name']") |
|
|
|
|
context "when the file does not contain issue type column" do |
|
|
|
|
it "updates the log address when old address was not given" do |
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
sales_log.reload |
|
|
|
|
expect(sales_log.uprn_known).to eq(0) |
|
|
|
|
expect(sales_log.uprn).to eq(nil) |
|
|
|
|
expect(sales_log.uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_log.address_line1).to eq("address 1") |
|
|
|
|
expect(sales_log.address_line2).to eq("address 2") |
|
|
|
|
expect(sales_log.town_or_city).to eq("town") |
|
|
|
|
expect(sales_log.county).to eq("county") |
|
|
|
|
expect(sales_log.pcodenk).to eq(0) |
|
|
|
|
expect(sales_log.postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(sales_log.la).to eq("E08000035") |
|
|
|
|
expect(sales_log.is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "updates the log address when old address was given" do |
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
sales_logs[0].reload |
|
|
|
|
expect(sales_logs[0].uprn_known).to eq(0) |
|
|
|
|
expect(sales_logs[0].uprn).to eq(nil) |
|
|
|
|
expect(sales_logs[0].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_logs[0].address_line1).to eq("address 3") |
|
|
|
|
expect(sales_logs[0].address_line2).to eq(nil) |
|
|
|
|
expect(sales_logs[0].town_or_city).to eq("city") |
|
|
|
|
expect(sales_logs[0].county).to eq(nil) |
|
|
|
|
expect(sales_logs[0].pcodenk).to eq(0) |
|
|
|
|
expect(sales_logs[0].postcode_full).to eq("B1 1BB") |
|
|
|
|
expect(sales_logs[0].la).to eq("E08000035") |
|
|
|
|
expect(sales_logs[0].is_la_inferred).to eq(true) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when uprn is given" do |
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
sales_logs[1].reload |
|
|
|
|
expect(sales_logs[1].uprn_known).to eq(1) |
|
|
|
|
expect(sales_logs[1].uprn).to eq("1") |
|
|
|
|
expect(sales_logs[1].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_logs[1].address_line1).to eq("Wrong Address Line1") |
|
|
|
|
expect(sales_logs[1].address_line2).to eq("Double Dependent Locality") |
|
|
|
|
expect(sales_logs[1].town_or_city).to eq("Westminster") |
|
|
|
|
expect(sales_logs[1].county).to eq(nil) |
|
|
|
|
expect(sales_logs[1].pcodenk).to eq(0) |
|
|
|
|
expect(sales_logs[1].postcode_full).to eq("LS16 6FT") |
|
|
|
|
expect(sales_logs[1].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "does not update log address when all required address fields are not present" do |
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
sales_logs[2].reload |
|
|
|
|
expect(sales_logs[2].uprn_known).to eq(1) |
|
|
|
|
expect(sales_logs[2].uprn).to eq("1") |
|
|
|
|
expect(sales_logs[2].uprn_confirmed).to eq(nil) |
|
|
|
|
expect(sales_logs[2].address_line1).to eq("Wrong Address Line1") |
|
|
|
|
expect(sales_logs[2].address_line2).to eq("Double Dependent Locality") |
|
|
|
|
expect(sales_logs[2].town_or_city).to eq("Westminster") |
|
|
|
|
expect(sales_logs[2].county).to eq(nil) |
|
|
|
|
expect(sales_logs[2].pcodenk).to eq(0) |
|
|
|
|
expect(sales_logs[2].postcode_full).to eq("LS16 6FT") |
|
|
|
|
expect(sales_logs[2].la).to eq("E06000064") |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "logs the progress of the update" do |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated sales log #{sales_log.id}, with address: address 1, address 2, town, county, B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Updated sales log #{sales_logs[0].id}, with address: address 3, , city, , B1 1BB") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Sales log with ID #{sales_logs[1].id} contains uprn, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Sales log with ID #{sales_logs[2].id} is missing required address data, skipping log") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Sales log ID not provided for address: Some Place, , Bristol, , BS1 1AD") |
|
|
|
|
expect(Rails.logger).to receive(:info).with("Could not find a sales log with id fake_id") |
|
|
|
|
|
|
|
|
|
task.invoke(all_addresses_csv_path) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it "raises an error when no path is given" do |
|
|
|
|
expect { task.invoke(nil) }.to raise_error(RuntimeError, "Usage: rake data_import:import_sales_addresses_from_csv['csv_file_name']") |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|