From 5d2838b4d94dd933854ee4039806ee17108424b9 Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 24 Feb 2023 12:29:21 +0000 Subject: [PATCH] Adjust test data to fit with the mappings that are known so far --- .../imports/sales_logs_import_service.rb | 9 +++- .../00d2343e-d5fa-4c89-8400-ec3854b0f2b4.xml | 4 +- .../0b4a68df-30cc-474a-93c0-a56ce8fdad3b.xml | 42 +++++++++++++----- .../0ead17cb-1668-442d-898c-0d52879ff592.xml | 4 +- .../166fc004-392e-47a8-acb8-1c018734882b.xml | 4 +- .../5ybz29dj-l33t-k1l0-hj86-n4k4ma77xkcd.xml | 6 ++- .../893ufj2s-lq77-42m4-rty6-ej09gh585uy1.xml | 6 ++- .../imports/sales_logs_import_service_spec.rb | 43 +++++++++++++++++++ 8 files changed, 99 insertions(+), 19 deletions(-) diff --git a/app/services/imports/sales_logs_import_service.rb b/app/services/imports/sales_logs_import_service.rb index 0c6962450..25f8148b8 100644 --- a/app/services/imports/sales_logs_import_service.rb +++ b/app/services/imports/sales_logs_import_service.rb @@ -416,7 +416,7 @@ module Imports attributes["national"] ||= 13 attributes["ecstat1"] ||= 10 attributes["income1nk"] ||= attributes["income1"].present? ? 0 : 1 - attributes["hholdcount"] ||= 0 # just for testing, might need to change + attributes["hholdcount"] ||= default_household_count(attributes) # just for testing, might need to change # buyer 2 characteristics if attributes["jointpur"] == 1 @@ -439,5 +439,12 @@ module Imports applicable_questions = sales_log.form.subsections.map { |s| s.applicable_questions(sales_log) }.flatten applicable_questions.filter { |q| q.unanswered?(sales_log) }.map(&:id) end + + # just for testing, logic might need to change + def default_household_count(attributes) + return 0 if attributes["hhmemb"].zero? || attributes["hhmemb"].blank? + + attributes["jointpur"] == 1 ? attributes["hhmemb"] - 2 : attributes["hhmemb"] - 1 + end end end diff --git a/spec/fixtures/imports/sales_logs/00d2343e-d5fa-4c89-8400-ec3854b0f2b4.xml b/spec/fixtures/imports/sales_logs/00d2343e-d5fa-4c89-8400-ec3854b0f2b4.xml index 58aada97b..e6dfb2379 100644 --- a/spec/fixtures/imports/sales_logs/00d2343e-d5fa-4c89-8400-ec3854b0f2b4.xml +++ b/spec/fixtures/imports/sales_logs/00d2343e-d5fa-4c89-8400-ec3854b0f2b4.xml @@ -219,7 +219,9 @@ 2 No - + + + 2 No diff --git a/spec/fixtures/imports/sales_logs/0b4a68df-30cc-474a-93c0-a56ce8fdad3b.xml b/spec/fixtures/imports/sales_logs/0b4a68df-30cc-474a-93c0-a56ce8fdad3b.xml index a3ab2d625..3308402c4 100644 --- a/spec/fixtures/imports/sales_logs/0b4a68df-30cc-474a-93c0-a56ce8fdad3b.xml +++ b/spec/fixtures/imports/sales_logs/0b4a68df-30cc-474a-93c0-a56ce8fdad3b.xml @@ -14,7 +14,9 @@ - Yes + + + 2023-02-01 Discount ownership example 2 Yes - a discount ownership scheme @@ -33,8 +35,11 @@ 3 House 1 Purpose built SW1A 1AA - Westminster - E09000033 + + + Cheltenham + E07000078 3 Don’t know @@ -193,17 +198,24 @@ GL51 9EX - SW1A - 1AA + + + GL51 + 9EX 1 - + + + 3 Private tenant GL51 9EX Cheltenham E07000078 - + + + Yes @@ -219,7 +231,9 @@ - + 1 Yes + + @@ -229,7 +243,9 @@ - + + + 1 @@ -260,7 +276,9 @@ 1 Yes 134750 Halifax - + + + 33 2 No 0 0.00 @@ -280,7 +298,9 @@ 0 - 3 = 1 adult + 9 = other + + 14 Preserved Right to Buy (PRTB) diff --git a/spec/fixtures/imports/sales_logs/0ead17cb-1668-442d-898c-0d52879ff592.xml b/spec/fixtures/imports/sales_logs/0ead17cb-1668-442d-898c-0d52879ff592.xml index fe08c2412..bff93462b 100644 --- a/spec/fixtures/imports/sales_logs/0ead17cb-1668-442d-898c-0d52879ff592.xml +++ b/spec/fixtures/imports/sales_logs/0ead17cb-1668-442d-898c-0d52879ff592.xml @@ -229,7 +229,9 @@ 1 Yes - + + + 1 2 No 30 diff --git a/spec/fixtures/imports/sales_logs/166fc004-392e-47a8-acb8-1c018734882b.xml b/spec/fixtures/imports/sales_logs/166fc004-392e-47a8-acb8-1c018734882b.xml index 17d481fa6..01b4ed9cb 100644 --- a/spec/fixtures/imports/sales_logs/166fc004-392e-47a8-acb8-1c018734882b.xml +++ b/spec/fixtures/imports/sales_logs/166fc004-392e-47a8-acb8-1c018734882b.xml @@ -229,7 +229,9 @@ 1 Yes - + + + 1 2 No 30 diff --git a/spec/fixtures/imports/sales_logs/5ybz29dj-l33t-k1l0-hj86-n4k4ma77xkcd.xml b/spec/fixtures/imports/sales_logs/5ybz29dj-l33t-k1l0-hj86-n4k4ma77xkcd.xml index 0eead66a5..832cfcbf7 100644 --- a/spec/fixtures/imports/sales_logs/5ybz29dj-l33t-k1l0-hj86-n4k4ma77xkcd.xml +++ b/spec/fixtures/imports/sales_logs/5ybz29dj-l33t-k1l0-hj86-n4k4ma77xkcd.xml @@ -229,7 +229,9 @@ 1 Yes - + + + 1 2 No 30 @@ -250,7 +252,7 @@ 89000 912.00 - 134.24 + diff --git a/spec/fixtures/imports/sales_logs/893ufj2s-lq77-42m4-rty6-ej09gh585uy1.xml b/spec/fixtures/imports/sales_logs/893ufj2s-lq77-42m4-rty6-ej09gh585uy1.xml index be53abaf4..cbaf4cb4c 100644 --- a/spec/fixtures/imports/sales_logs/893ufj2s-lq77-42m4-rty6-ej09gh585uy1.xml +++ b/spec/fixtures/imports/sales_logs/893ufj2s-lq77-42m4-rty6-ej09gh585uy1.xml @@ -219,7 +219,7 @@ 1 Yes 47000 - 1 Yes + @@ -229,7 +229,9 @@ 1 Yes - + + + 1 2 No 30 diff --git a/spec/services/imports/sales_logs_import_service_spec.rb b/spec/services/imports/sales_logs_import_service_spec.rb index cbc2d4d21..9f7694690 100644 --- a/spec/services/imports/sales_logs_import_service_spec.rb +++ b/spec/services/imports/sales_logs_import_service_spec.rb @@ -553,6 +553,49 @@ RSpec.describe Imports::SalesLogsImportService do expect(sales_log&.prevown).to eq(2) end end + + context "when inferring household count" do + let(:sales_log_id) { discounted_ownership_sales_log_id } + + before do + allow(logger).to receive(:warn).and_return(nil) + end + + it "sets hholdcount to hhmemb - 1 if not answered and not joint purchase" do + sales_log_xml.at_xpath("//xmlns:HHMEMB").content = "3" + sales_log_xml.at_xpath("//xmlns:joint").content = "2 No" + sales_log_xml.at_xpath("//xmlns:LiveInOther").content = "" + + sales_log_service.send(:create_log, sales_log_xml) + + sales_log = SalesLog.find_by(old_id: sales_log_id) + expect(sales_log&.hholdcount).to eq(2) + end + + it "sets hholdcount to hhmemb - 2 if not answered and joint purchase" do + sales_log_xml.at_xpath("//xmlns:joint").content = "1 Yes" + sales_log_xml.at_xpath("//xmlns:JointMore").content = "2 No" + sales_log_xml.at_xpath("//xmlns:HHMEMB").content = "3" + sales_log_xml.at_xpath("//xmlns:LiveInOther").content = "" + + sales_log_service.send(:create_log, sales_log_xml) + + sales_log = SalesLog.find_by(old_id: sales_log_id) + expect(sales_log&.hholdcount).to eq(1) + end + + it "sets hholdcount to 0 if HHMEMB is 0" do + sales_log_xml.at_xpath("//xmlns:joint").content = "1 Yes" + sales_log_xml.at_xpath("//xmlns:JointMore").content = "2 No" + sales_log_xml.at_xpath("//xmlns:HHMEMB").content = "0" + sales_log_xml.at_xpath("//xmlns:LiveInOther").content = "" + + sales_log_service.send(:create_log, sales_log_xml) + + sales_log = SalesLog.find_by(old_id: sales_log_id) + expect(sales_log&.hholdcount).to eq(0) + end + end end end end