From 5275ff22aa339cc97919f22d78a7d70d3a61677f Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Tue, 27 Feb 2024 15:38:54 +0000 Subject: [PATCH] feat: further simplify unpend_and_confirm_soft_validations --- app/models/bulk_upload.rb | 13 ++++--------- spec/models/bulk_upload_spec.rb | 8 ++++---- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/models/bulk_upload.rb b/app/models/bulk_upload.rb index 2c8b7cf5e..a1b656f49 100644 --- a/app/models/bulk_upload.rb +++ b/app/models/bulk_upload.rb @@ -78,18 +78,13 @@ class BulkUpload < ApplicationRecord end end - SHARED_VALUE_CHECKS = %w[retirement_value_check].freeze - LETTINGS_VALUE_CHECKS = %w[pregnancy_value_check major_repairs_date_value_check void_date_value_check rent_value_check net_income_value_check carehome_charges_value_check referral_value_check supcharg_value_check scharge_value_check pscharge_value_check reasonother_value_check].freeze - SALES_VALUE_CHECKS = %w[mortgage_value_check shared_ownership_deposit_value_check value_value_check savings_value_check income1_value_check deposit_value_check wheel_value_check extrabor_value_check grant_value_check staircase_bought_value_check deposit_and_mortgage_value_check old_persons_shared_ownership_value_check percentage_discount_value_check stairowned_value_check combined_income_value_check discounted_sale_value_check monthly_charges_value_check income2_value_check student_not_child_value_check buyer_livein_value_check].freeze + def fields_to_confirm(log) + log.form.questions.select { |q| q.type == "interruption_screen" }.uniq(&:id).map(&:id) + end def unpend_and_confirm_soft_validations logs.find_each do |log| - fields_to_confirm = SHARED_VALUE_CHECKS + (if log.lettings? - LETTINGS_VALUE_CHECKS - elsif log.sales? - SALES_VALUE_CHECKS - end) - fields_to_confirm.each { |field| log[field] = 0 } + fields_to_confirm(log).each { |field| log[field] = 0 } log.save! end end diff --git a/spec/models/bulk_upload_spec.rb b/spec/models/bulk_upload_spec.rb index 9a05c40d7..130909eb8 100644 --- a/spec/models/bulk_upload_spec.rb +++ b/spec/models/bulk_upload_spec.rb @@ -21,18 +21,18 @@ RSpec.describe BulkUpload, type: :model do describe "value check clearing" do context "with a lettings log bulk upload" do - let(:value_check_fields) { LettingsLog.columns_hash.keys.select { |column| column.end_with?("_value_check") } } + let(:log) { create(:lettings_log, bulk_upload:) } it "has the correct number of value checks to be set as confirmed" do - expect(value_check_fields.count).to eq(BulkUpload::SHARED_VALUE_CHECKS.count + BulkUpload::LETTINGS_VALUE_CHECKS.count) + expect(bulk_upload.fields_to_confirm(log).sort).to eq(%w[rent_value_check void_date_value_check major_repairs_date_value_check pregnancy_value_check retirement_value_check referral_value_check net_income_value_check carehome_charges_value_check scharge_value_check pscharge_value_check supcharg_value_check].sort) end end context "with a sales log bulk upload" do - let(:value_check_fields) { SalesLog.columns_hash.keys.select { |column| column.end_with?("_value_check") } } + let(:log) { create(:sales_log, bulk_upload:) } it "has the correct number of value checks to be set as confirmed" do - expect(value_check_fields.count).to eq(BulkUpload::SHARED_VALUE_CHECKS.count + BulkUpload::SALES_VALUE_CHECKS.count) + expect(bulk_upload.fields_to_confirm(log).sort).to eq(%w[value_value_check monthly_charges_value_check percentage_discount_value_check income1_value_check income2_value_check combined_income_value_check retirement_value_check old_persons_shared_ownership_value_check buyer_livein_value_check student_not_child_value_check wheel_value_check mortgage_value_check savings_value_check deposit_value_check staircase_bought_value_check stairowned_value_check hodate_check shared_ownership_deposit_value_check extrabor_value_check grant_value_check discounted_sale_value_check deposit_and_mortgage_value_check].sort) end end end