From 7d9d1bfc14160199c5c750eced539e895e9ef5f4 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Wed, 20 Mar 2024 09:38:50 +0000 Subject: [PATCH] feat: update derived variables to clear uprn_confirmed when uprn_known is 0 --- app/models/derived_variables/lettings_log_variables.rb | 1 + app/models/derived_variables/sales_log_variables.rb | 1 + spec/shared/shared_examples_for_derived_fields.rb | 10 ++++++++++ 3 files changed, 12 insertions(+) diff --git a/app/models/derived_variables/lettings_log_variables.rb b/app/models/derived_variables/lettings_log_variables.rb index ac17e0219..11d03bdcb 100644 --- a/app/models/derived_variables/lettings_log_variables.rb +++ b/app/models/derived_variables/lettings_log_variables.rb @@ -116,6 +116,7 @@ module DerivedVariables::LettingsLogVariables if uprn_confirmed&.zero? self.uprn = nil self.uprn_known = 0 + self.uprn_confirmed = nil end self.nationality_all = nationality_all_group if nationality_uk_or_prefers_not_to_say? diff --git a/app/models/derived_variables/sales_log_variables.rb b/app/models/derived_variables/sales_log_variables.rb index a4817a230..2e9d5434a 100644 --- a/app/models/derived_variables/sales_log_variables.rb +++ b/app/models/derived_variables/sales_log_variables.rb @@ -47,6 +47,7 @@ module DerivedVariables::SalesLogVariables if uprn_confirmed&.zero? self.uprn = nil self.uprn_known = 0 + self.uprn_confirmed = nil end self.nationality_all = nationality_all_group if nationality_uk_or_prefers_not_to_say? diff --git a/spec/shared/shared_examples_for_derived_fields.rb b/spec/shared/shared_examples_for_derived_fields.rb index 6382ef4f4..336cbf852 100644 --- a/spec/shared/shared_examples_for_derived_fields.rb +++ b/spec/shared/shared_examples_for_derived_fields.rb @@ -14,4 +14,14 @@ RSpec.shared_examples "shared examples for derived fields" do |log_type| expect { log.set_derived_fields! }.not_to change(log, :ethnic) end end + + context "when uprn is not confirmed" do + it "derives other uprn fields correctly" do + log = FactoryBot.build(log_type, uprn_known: 1, uprn: 1, uprn_confirmed: 0) + + expect { log.set_derived_fields! }.to change(log, :uprn_known).from(1).to(0) + .and change(log, :uprn).from("1").to(nil) + .and change(log, :uprn_confirmed).from(0).to(nil) + end + end end