From 49f3886a20aaabe182995f9fe81b48d85ed7858f Mon Sep 17 00:00:00 2001 From: Rachael Booth Date: Mon, 26 Feb 2024 16:30:29 +0000 Subject: [PATCH] CLDC-3248: Ensure previous_la_known gets cleared if prevloc is when blanking invalid fields (#2243) * CLDC-3248: Ensure previous_la_known gets cleared if prevloc is when blanking invalid fields * CLDC-3248: Update tests around blank_invalid_non_setup_fields --- app/models/log.rb | 1 + spec/models/lettings_log_spec.rb | 20 ------------- spec/models/log_spec.rb | 50 ++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 20 deletions(-) diff --git a/app/models/log.rb b/app/models/log.rb index d99399da1..e15869634 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -179,6 +179,7 @@ class Log < ApplicationRecord def blank_compound_invalid_non_setup_fields! self.ppcodenk = nil if errors.attribute_names.include? :ppostcode_full + self.previous_la_known = nil if errors.attribute_names.include? :prevloc if errors.of_kind?(:uprn, :uprn_error) self.uprn_known = nil diff --git a/spec/models/lettings_log_spec.rb b/spec/models/lettings_log_spec.rb index 5c55d87cb..f27a7f7e5 100644 --- a/spec/models/lettings_log_spec.rb +++ b/spec/models/lettings_log_spec.rb @@ -3382,26 +3382,6 @@ RSpec.describe LettingsLog do end end - describe "#blank_invalid_non_setup_fields!" do - context "when a setup field is invalid" do - subject(:model) { described_class.new(needstype: 404) } - - it "does not blank it" do - model.valid? - expect { model.blank_invalid_non_setup_fields! }.not_to change(model, :needstype) - end - end - - context "when a non setup field is invalid" do - subject(:model) { build(:lettings_log, :completed, offered: 234) } - - it "blanks it" do - model.valid? - expect { model.blank_invalid_non_setup_fields! }.to change(model, :offered) - end - end - end - describe "#beds_for_la_rent_range" do context "when beds nil" do let(:lettings_log) { build(:lettings_log, beds: nil) } diff --git a/spec/models/log_spec.rb b/spec/models/log_spec.rb index fb686e744..3494f152f 100644 --- a/spec/models/log_spec.rb +++ b/spec/models/log_spec.rb @@ -27,4 +27,54 @@ RSpec.describe Log, type: :model do expect(in_progress_lettings_log.calculate_status).to eq "in_progress" end end + + describe "#blank_invalid_non_setup_fields!" do + context "when a setup field is invalid for a lettings log" do + subject(:model) { build(:lettings_log, needstype: 404) } + + it "does not blank it" do + model.valid? + expect { model.blank_invalid_non_setup_fields! }.not_to change(model, :needstype) + end + end + + context "when a setup field is invalid for a sales log" do + subject(:model) { build(:sales_log, companybuy: 404) } + + it "does not blank it" do + model.valid? + expect { model.blank_invalid_non_setup_fields! }.not_to change(model, :companybuy) + end + end + + context "when a non setup field is invalid for a lettings log" do + subject(:model) { build(:lettings_log, :completed, offered: 234) } + + it "blanks it" do + model.valid? + model.blank_invalid_non_setup_fields! + expect(model.offered).to be_nil + end + end + + context "when a non setup field is invalid for a sales log" do + subject(:model) { build(:sales_log, :completed, age1: 10) } + + it "blanks it" do + model.valid? + model.blank_invalid_non_setup_fields! + expect(model.age1).to be_nil + end + end + + context "when prevloc is invalid for a lettings log" do + subject(:model) { build(:lettings_log, :completed, previous_la_known: 1, prevloc: nil) } + + it "blanks previous_la_known" do + model.valid? + model.blank_invalid_non_setup_fields! + expect(model.previous_la_known).to be_nil + end + end + end end