From 05abccd7bcc85d7c42977cb20379e931e9614d98 Mon Sep 17 00:00:00 2001 From: Nat Dean-Lewis <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Mon, 23 Mar 2026 13:33:41 +0000 Subject: [PATCH] CLDC-4312: Fix broken purchase price soft validation (#3253) * CLDC-4297: set derived for sales beds * CLDC-4312: update tests --- .../questions/property_number_of_bedrooms.rb | 4 ++++ .../property_number_of_bedrooms_spec.rb | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/models/form/sales/questions/property_number_of_bedrooms.rb b/app/models/form/sales/questions/property_number_of_bedrooms.rb index 3d130b1c8..7e3c281ee 100644 --- a/app/models/form/sales/questions/property_number_of_bedrooms.rb +++ b/app/models/form/sales/questions/property_number_of_bedrooms.rb @@ -11,5 +11,9 @@ class Form::Sales::Questions::PropertyNumberOfBedrooms < ::Form::Question @question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR) end + def derived?(log) + log.is_bedsit? + end + QUESTION_NUMBER_FROM_YEAR = { 2023 => 11, 2024 => 18, 2025 => 17, 2026 => 18 }.freeze end diff --git a/spec/models/form/sales/questions/property_number_of_bedrooms_spec.rb b/spec/models/form/sales/questions/property_number_of_bedrooms_spec.rb index 7887a84ae..8e12b19aa 100644 --- a/spec/models/form/sales/questions/property_number_of_bedrooms_spec.rb +++ b/spec/models/form/sales/questions/property_number_of_bedrooms_spec.rb @@ -19,8 +19,22 @@ RSpec.describe Form::Sales::Questions::PropertyNumberOfBedrooms, type: :model do expect(question.type).to eq("numeric") end - it "is not marked as derived" do - expect(question.derived?(nil)).to be false + describe "#derived?" do + context "when the log is a bedsit" do + let(:log) { build(:sales_log, proptype: 2) } + + it "is marked as derived" do + expect(question.derived?(log)).to be true + end + end + + context "when the log is not a bedsit" do + let(:log) { build(:sales_log, proptype: 1) } + + it "is not marked as derived" do + expect(question.derived?(log)).to be false + end + end end it "has the correct min" do