From 4c10040f9c44bb61568288d84adce655c767ff0e Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 4 Aug 2022 15:31:38 +0100 Subject: [PATCH] remove location_id if scheme needstype changes to general needs --- app/models/case_log.rb | 3 ++- spec/models/case_log_spec.rb | 14 +++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 35594bb39..9b703a510 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -537,7 +537,8 @@ private homeless: [{ key: :renewal, value: 0 }], referral: [{ key: :renewal, value: 0 }], underoccupation_benefitcap: [{ key: :renewal, value: 0 }], - wchair: [{ key: :needstype, value: 1 }] } + wchair: [{ key: :needstype, value: 1 }], + location_id: [{ key: :needstype, value: 1 }] } dependent_questions.each do |dependent, conditions| condition_key = conditions.first[:key] diff --git a/spec/models/case_log_spec.rb b/spec/models/case_log_spec.rb index 0df6361f5..9520feffe 100644 --- a/spec/models/case_log_spec.rb +++ b/spec/models/case_log_spec.rb @@ -1843,7 +1843,7 @@ RSpec.describe CaseLog do end context "when it changes from a supported housing to not a supported housing" do - let(:location) { FactoryBot.create(:location, mobility_type: "A") } + let(:location) { FactoryBot.create(:location, mobility_type: "A", postcode: "SW1P 4DG") } let(:case_log) { FactoryBot.create(:case_log, location:) } it "resets inferred wchair value" do @@ -1858,6 +1858,18 @@ RSpec.describe CaseLog do expect(record_from_db["wchair"]).to eq(nil) expect(case_log["wchair"]).to eq(nil) end + + it "resets location" do + case_log.update!({ needstype: 2 }) + + record_from_db = ActiveRecord::Base.connection.execute("select location_id from case_logs where id=#{case_log.id}").to_a[0] + expect(record_from_db["location_id"]).to eq(location.id) + expect(case_log["location_id"]).to eq(location.id) + case_log.update!({ needstype: 1 }) + record_from_db = ActiveRecord::Base.connection.execute("select location_id from case_logs where id=#{case_log.id}").to_a[0] + expect(record_from_db["location_id"]).to eq(nil) + expect(case_log["location_id"]).to eq(nil) + end end context "when it is not a renewal" do