From a6d720298ce9475d506dd7830210ad3ea2c1305c Mon Sep 17 00:00:00 2001 From: Kat Date: Tue, 9 May 2023 10:16:47 +0100 Subject: [PATCH] Round earnings value upon import --- .../imports/lettings_logs_import_service.rb | 2 +- .../lettings_logs_import_service_spec.rb | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/services/imports/lettings_logs_import_service.rb b/app/services/imports/lettings_logs_import_service.rb index 1bc00df9e..fe9db416c 100644 --- a/app/services/imports/lettings_logs_import_service.rb +++ b/app/services/imports/lettings_logs_import_service.rb @@ -105,7 +105,7 @@ module Imports attributes["hb"] = unsafe_string_as_integer(xml_doc, "Q6Ben") attributes["benefits"] = unsafe_string_as_integer(xml_doc, "Q7Ben") - attributes["earnings"] = safe_string_as_decimal(xml_doc, "Q8Money") + attributes["earnings"] = safe_string_as_decimal(xml_doc, "Q8Money")&.round attributes["net_income_known"] = net_income_known(xml_doc, attributes["earnings"]) attributes["incfreq"] = unsafe_string_as_integer(xml_doc, "Q8a") diff --git a/spec/services/imports/lettings_logs_import_service_spec.rb b/spec/services/imports/lettings_logs_import_service_spec.rb index 98782181b..6132890a1 100644 --- a/spec/services/imports/lettings_logs_import_service_spec.rb +++ b/spec/services/imports/lettings_logs_import_service_spec.rb @@ -1207,6 +1207,34 @@ RSpec.describe Imports::LettingsLogsImportService do end end + context "and the earnings is not a whole number" 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 = "submitted" + lettings_log_xml.at_xpath("//xmlns:Q8a").content = "1 Weekly" + lettings_log_xml.at_xpath("//xmlns:Q8Money").content = 100.59 + lettings_log_xml.at_xpath("//xmlns:Q8Refused").content = "" + end + + it "does not error" do + expect { lettings_log_service.send(:create_log, lettings_log_xml) } + .not_to raise_error + end + + it "rounds the earnings value" 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.earnings).to eq(101) + 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) }