From 66c052ed352d2bc4fb6ea3d536a927ecce488f7d Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 29 Mar 2023 10:04:15 +0100 Subject: [PATCH] Extract earnings validation and remove to_set from hash --- app/services/imports/lettings_logs_import_service.rb | 12 ++++++++++-- .../imports/lettings_logs_import_service_spec.rb | 1 - 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/services/imports/lettings_logs_import_service.rb b/app/services/imports/lettings_logs_import_service.rb index ea7644071..996e5ac0c 100644 --- a/app/services/imports/lettings_logs_import_service.rb +++ b/app/services/imports/lettings_logs_import_service.rb @@ -286,7 +286,6 @@ module Imports %i[chcharge out_of_range] => { to_delete: %w[chcharge] }, %i[referral internal_transfer_non_social_housing] => { to_delete: %w[referral] }, %i[referral internal_transfer_fixed_or_lifetime] => { to_delete: %w[referral] }, - %i[earnings under_hard_min] => { to_delete: %w[earnings incfreq], to_set: { incref: 1, net_income_known: 2 } }, %i[tenancylength tenancylength_invalid] => { to_delete: %w[tenancylength tenancy] }, %i[prevten over_20_foster_care] => { to_delete: %w[prevten age1] }, %i[prevten non_temp_accommodation] => { to_delete: %w[prevten rsnvac] }, @@ -315,7 +314,16 @@ module Imports @logger.warn("Log #{lettings_log.old_id}: Removing #{fields[:to_delete].join(', ')} with error: #{lettings_log.errors[error.first].join(', ')}") @logs_overridden << lettings_log.old_id fields[:to_delete].each { |field| attributes.delete(field) } - fields[:to_set].each { |field, value| attributes[field] = value } if fields[:to_set] + return save_lettings_log(attributes, previous_status) + end + + if lettings_log.errors.of_kind?(:earnings, :under_hard_min) + @logger.warn("Log #{lettings_log.old_id}: Removing earnings, incfreq with error: #{lettings_log.errors[:earnings].join(', ')}") + @logs_overridden << lettings_log.old_id + attributes.delete("earnings") + attributes.delete("incfreq") + attributes["incref"] = 1 + attributes["net_income_known"] = 2 return save_lettings_log(attributes, previous_status) end diff --git a/spec/services/imports/lettings_logs_import_service_spec.rb b/spec/services/imports/lettings_logs_import_service_spec.rb index 068813b98..9ce365f3f 100644 --- a/spec/services/imports/lettings_logs_import_service_spec.rb +++ b/spec/services/imports/lettings_logs_import_service_spec.rb @@ -224,7 +224,6 @@ RSpec.describe Imports::LettingsLogsImportService do it "intercepts the relevant validation error" do expect(logger).to receive(:warn).with(/Removing earnings, incfreq with error: Net income cannot be less than £10 per week given the tenant’s working situation/) - expect(logger).to receive(:warn).with(/Differences found when saving log/) expect { lettings_log_service.send(:create_log, lettings_log_xml) } .not_to raise_error end