From 1409eed9a8f2991218caf0cd193f9a58a11942d3 Mon Sep 17 00:00:00 2001 From: Kat Date: Tue, 9 May 2023 09:26:51 +0100 Subject: [PATCH] Clear all the charges if the error is on tcharge --- .../imports/lettings_logs_import_service.rb | 1 + .../lettings_logs_import_service_spec.rb | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/app/services/imports/lettings_logs_import_service.rb b/app/services/imports/lettings_logs_import_service.rb index 1bc98925a..1bc00df9e 100644 --- a/app/services/imports/lettings_logs_import_service.rb +++ b/app/services/imports/lettings_logs_import_service.rb @@ -289,6 +289,7 @@ module Imports lettings_log.errors.each do |error| @logger.warn("Log #{lettings_log.old_id}: Removing field #{error.attribute} from log triggering validation: #{error.type}") attributes.delete(error.attribute.to_s) + %w[brent scharge pscharge supcharg tcharge].each { |attribute| attributes.delete(attribute) } if error.attribute == :tcharge end @logs_overridden << lettings_log.old_id return save_lettings_log(attributes, previous_status) diff --git a/spec/services/imports/lettings_logs_import_service_spec.rb b/spec/services/imports/lettings_logs_import_service_spec.rb index ec41ba366..98782181b 100644 --- a/spec/services/imports/lettings_logs_import_service_spec.rb +++ b/spec/services/imports/lettings_logs_import_service_spec.rb @@ -1173,6 +1173,40 @@ RSpec.describe Imports::LettingsLogsImportService do end end + context "and an error is added to tcharge for in progress log" do + let(:lettings_log_id) { "00d2343e-d5fa-4c89-8400-ec3854b0f2b4" } + let(:lettings_log_file) { open_file(fixture_directory, lettings_log_id) } + let(:lettings_log_xml) { Nokogiri::XML(lettings_log_file) } + + before do + lettings_log_xml.at_xpath("//meta:status").content = "saved" + lettings_log_xml.at_xpath("//xmlns:Q18ai").content = "1" + lettings_log_xml.at_xpath("//xmlns:Q18aii").content = "2" + lettings_log_xml.at_xpath("//xmlns:Q18aiii").content = "3" + lettings_log_xml.at_xpath("//xmlns:Q18aiv").content = "3" + lettings_log_xml.at_xpath("//xmlns:Q18av").content = "9" + end + + it "intercepts the relevant validation error" do + expect(logger).to receive(:warn).with("Log 00d2343e-d5fa-4c89-8400-ec3854b0f2b4: Removing field tcharge from log triggering validation: under_10") + lettings_log_service.send(:create_log, lettings_log_xml) + end + + it "clears out the invalid answers" do + allow(logger).to receive(:warn) + + lettings_log_service.send(:create_log, lettings_log_xml) + lettings_log = LettingsLog.find_by(old_id: lettings_log_id) + + expect(lettings_log).not_to be_nil + expect(lettings_log.tcharge).to be_nil + expect(lettings_log.brent).to be_nil + expect(lettings_log.scharge).to be_nil + expect(lettings_log.pscharge).to be_nil + expect(lettings_log.supcharg).to be_nil + end + end + context "when setting location fields for 23/24 logs" do let(:lettings_log_id) { "00d2343e-d5fa-4c89-8400-ec3854b0f2b4" } let(:lettings_log_file) { open_file(fixture_directory, lettings_log_id) }