From 5aec52214b87a4e703d2cb3e30b6a21f8710abcb Mon Sep 17 00:00:00 2001 From: Kat Date: Mon, 14 Feb 2022 15:29:24 +0000 Subject: [PATCH] Infer remaining renewal variables --- app/models/case_log.rb | 9 ++++++++- app/models/form.rb | 2 +- spec/models/case_log_spec.rb | 23 +++++++++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 920bbd5e7..620aafe1d 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -256,7 +256,14 @@ private self.nocharge = household_charge == "Yes" ? "No" : "Yes" self.layear = "Less than 1 year" if renewal == "Yes" self.underoccupation_benefitcap = "No" if renewal == "Yes" && year == 2021 - self.homeless = "No" if renewal == "Yes" + if renewal == "Yes" + self.homeless = "No" + self.referral = "Internal transfer" + end + if needstype == "General needs" + self.prevten = "Fixed-term private registered provider (PRP) general needs tenancy" if managing_organisation.provider_type == "PRP" + self.prevten = "Fixed-term local authority general needs tenancy" if managing_organisation.provider_type == "LA" + end end def process_postcode_changes! diff --git a/app/models/form.rb b/app/models/form.rb index eb522e468..c30771c74 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -114,7 +114,7 @@ class Form end def invalidated_page_questions(case_log) - #we're already treating address fields as a special case and reset their values upon saving a case_log + # we're already treating address fields as a special case and reset their values upon saving a case_log address_questions = %w[postcode_known la previous_postcode_known prevloc property_postcode previous_postcode] pages_that_are_routed_to = pages.select { |p| p.routed_to?(case_log) } enabled_question_ids = pages_that_are_routed_to.flat_map(&:questions).map(&:id) || [] diff --git a/spec/models/case_log_spec.rb b/spec/models/case_log_spec.rb index 3d55b93d2..bd06b98cc 100644 --- a/spec/models/case_log_spec.rb +++ b/spec/models/case_log_spec.rb @@ -582,10 +582,25 @@ RSpec.describe CaseLog do expect(case_log["underoccupation_benefitcap"]).to eq("No") end - it "correctly derives and saves homeless" do - record_from_db = ActiveRecord::Base.connection.execute("select homeless from case_logs where id=#{case_log.id}").to_a[0] - expect(record_from_db["homeless"]).to eq(1) - expect(case_log["homeless"]).to eq("No") + it "correctly derives and saves prevten" do + case_log.update!({ needstype: "General needs" }) + + record_from_db = ActiveRecord::Base.connection.execute("select prevten from case_logs where id=#{case_log.id}").to_a[0] + expect(record_from_db["prevten"]).to eq(32) + expect(case_log["prevten"]).to eq("Fixed-term private registered provider (PRP) general needs tenancy") + + case_log.managing_organisation.update!({ provider_type: "LA" }) + case_log.update!({ needstype: "General needs" }) + + record_from_db = ActiveRecord::Base.connection.execute("select prevten from case_logs where id=#{case_log.id}").to_a[0] + expect(record_from_db["prevten"]).to eq(30) + expect(case_log["prevten"]).to eq("Fixed-term local authority general needs tenancy") + end + + it "correctly derives and saves referral" do + record_from_db = ActiveRecord::Base.connection.execute("select referral from case_logs where id=#{case_log.id}").to_a[0] + expect(record_from_db["referral"]).to eq(1) + expect(case_log["referral"]).to eq("Internal transfer") end end end