Browse Source

CLDC-4402: soctenant_is_inferred now true, so removes now unreachable BuyerPrevious page

CLDC-4402-audit-start-year-2024-or-later-usage-2
Rebecca Jesson 4 weeks ago
parent
commit
99c8245126
  1. 20
      app/models/form/sales/pages/buyer_previous.rb
  2. 8
      app/models/form/sales/pages/previous_bedrooms.rb
  3. 8
      app/models/form/sales/pages/previous_property_type.rb
  4. 8
      app/models/form/sales/pages/previous_tenure.rb
  5. 29
      app/models/form/sales/questions/buyer_previous.rb
  6. 2
      app/models/form/sales/subsections/shared_ownership_initial_purchase.rb
  7. 2
      app/models/form/sales/subsections/shared_ownership_scheme.rb
  8. 14
      config/locales/forms/2024/sales/sale_information.en.yml
  9. 14
      config/locales/forms/2025/sales/sale_information.en.yml
  10. 14
      config/locales/forms/2026/sales/sale_information.en.yml
  11. 77
      spec/models/form/sales/pages/buyer_previous_spec.rb
  12. 8
      spec/models/form/sales/pages/previous_bedrooms_spec.rb
  13. 8
      spec/models/form/sales/pages/previous_property_type_spec.rb
  14. 8
      spec/models/form/sales/pages/previous_tenure_spec.rb
  15. 68
      spec/models/form/sales/questions/buyer_previous_spec.rb
  16. 9
      spec/models/form/sales/subsections/shared_ownership_initial_purchase_spec.rb
  17. 2
      spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb

20
app/models/form/sales/pages/buyer_previous.rb

@ -1,20 +0,0 @@
class Form::Sales::Pages::BuyerPrevious < ::Form::Page
def initialize(id, hsh, subsection, joint_purchase:)
super(id, hsh, subsection)
@joint_purchase = joint_purchase
@copy_key = "sales.sale_information.soctenant.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}"
@depends_on = [{ "joint_purchase?" => joint_purchase, "soctenant_is_inferred?" => false }]
end
def questions
@questions ||= [
Form::Sales::Questions::BuyerPrevious.new(nil, nil, self, joint_purchase: @joint_purchase),
]
end
def routed_to?(log, _current_user)
return false if log.is_staircase? && form.start_year_2024_or_later?
super
end
end

8
app/models/form/sales/pages/previous_bedrooms.rb

@ -9,10 +9,10 @@ class Form::Sales::Pages::PreviousBedrooms < ::Form::Page
{
"soctenant" => 0,
},
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 2 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 2 },
{ "ownershipsch" => 1, "prevten" => 1 },
{ "ownershipsch" => 1, "prevten" => 2 },
{ "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "ownershipsch" => 1, "prevtenbuy2" => 2 },
]
end

8
app/models/form/sales/pages/previous_property_type.rb

@ -11,10 +11,10 @@ class Form::Sales::Pages::PreviousPropertyType < ::Form::Page
{
"soctenant" => 0,
},
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 2 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 2 },
{ "ownershipsch" => 1, "prevten" => 1 },
{ "ownershipsch" => 1, "prevten" => 2 },
{ "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "ownershipsch" => 1, "prevtenbuy2" => 2 },
]
end

8
app/models/form/sales/pages/previous_tenure.rb

@ -12,10 +12,10 @@ class Form::Sales::Pages::PreviousTenure < ::Form::Page
{
"soctenant" => 0,
},
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 2 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 2 },
{ "ownershipsch" => 1, "prevten" => 1 },
{ "ownershipsch" => 1, "prevten" => 2 },
{ "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "ownershipsch" => 1, "prevtenbuy2" => 2 },
]
end

29
app/models/form/sales/questions/buyer_previous.rb

@ -1,29 +0,0 @@
class Form::Sales::Questions::BuyerPrevious < ::Form::Question
def initialize(id, hsh, page, joint_purchase:)
super(id, hsh, page)
@id = "soctenant"
@copy_key = "sales.sale_information.soctenant.#{joint_purchase ? 'joint_purchase' : 'not_joint_purchase'}"
@type = "radio"
@answer_options = ANSWER_OPTIONS
@question_number = get_question_number_from_hash(QUESTION_NUMBER_FROM_YEAR)
end
ANSWER_OPTIONS = {
"1" => { "value" => "Yes" },
"2" => { "value" => "No" },
"0" => { "value" => "Don’t know" },
}.freeze
def displayed_answer_options(_log, _user = nil)
{
"1" => { "value" => "Yes" },
"2" => { "value" => "No" },
}
end
def derived?(_log)
form.start_year_2024_or_later?
end
QUESTION_NUMBER_FROM_YEAR = { 2023 => 84 }.freeze
end

2
app/models/form/sales/subsections/shared_ownership_initial_purchase.rb

@ -14,8 +14,6 @@ class Form::Sales::Subsections::SharedOwnershipInitialPurchase < ::Form::Subsect
Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_shared_ownership", nil, self, ownershipsch: 1, joint_purchase: false),
Form::Sales::Pages::HandoverDate.new(nil, nil, self),
Form::Sales::Pages::HandoverDateCheck.new(nil, nil, self),
Form::Sales::Pages::BuyerPrevious.new("buyer_previous_joint_purchase", nil, self, joint_purchase: true),
Form::Sales::Pages::BuyerPrevious.new("buyer_previous_not_joint_purchase", nil, self, joint_purchase: false),
Form::Sales::Pages::PreviousBedrooms.new(nil, nil, self),
Form::Sales::Pages::PreviousPropertyType.new(nil, nil, self),
Form::Sales::Pages::PreviousTenure.new(nil, nil, self),

2
app/models/form/sales/subsections/shared_ownership_scheme.rb

@ -22,8 +22,6 @@ class Form::Sales::Subsections::SharedOwnershipScheme < ::Form::Subsection
Form::Sales::Pages::HandoverDate.new(nil, nil, self),
Form::Sales::Pages::HandoverDateCheck.new(nil, nil, self),
Form::Sales::Pages::LaNominations.new(nil, nil, self),
Form::Sales::Pages::BuyerPrevious.new("buyer_previous_joint_purchase", nil, self, joint_purchase: true),
Form::Sales::Pages::BuyerPrevious.new("buyer_previous_not_joint_purchase", nil, self, joint_purchase: false),
Form::Sales::Pages::PreviousBedrooms.new(nil, nil, self),
Form::Sales::Pages::PreviousPropertyType.new(nil, nil, self),
Form::Sales::Pages::PreviousTenure.new(nil, nil, self),

14
config/locales/forms/2024/sales/sale_information.en.yml

@ -87,20 +87,6 @@ en:
hint_text: "A local authority nominations agreement is a written agreement between a local authority and private registered provider (PRP) that some or all of its sales vacancies are offered to local authorities for rehousing"
question_text: "Was the household rehoused under a 'local authority nominations agreement'?"
soctenant:
joint_purchase:
page_header: ""
check_answer_label: "Buyers were registered providers, housing association or local authority tenants immediately before this sale"
check_answer_prompt: "Tell us if buyers were registered providers, housing association or local authority tenants"
hint_text: ""
question_text: "Were any of the buyers private registered providers, housing association or local authority tenants immediately before this sale?"
not_joint_purchase:
page_header: ""
check_answer_label: "Buyer was a registered provider, housing association or local authority tenant immediately before this sale"
check_answer_prompt: "Tell us if buyer was a registered provider, housing association or local authority tenant"
hint_text: ""
question_text: "Was the buyer a private registered provider, housing association or local authority tenant immediately before this sale?"
frombeds:
page_header: ""
check_answer_label: "Number of bedrooms in previous property"

14
config/locales/forms/2025/sales/sale_information.en.yml

@ -108,20 +108,6 @@ en:
hint_text: "A local authority nominations agreement is a written agreement between a local authority and private registered provider (PRP) that some or all of its sales vacancies are offered to local authorities for rehousing"
question_text: "Was the household rehoused under a 'local authority nominations agreement'?"
soctenant:
joint_purchase:
page_header: ""
check_answer_label: "Buyers were registered providers, housing association or local authority tenants immediately before this sale"
check_answer_prompt: "Tell us if buyers were registered providers, housing association or local authority tenants"
hint_text: ""
question_text: "Were any of the buyers private registered providers, housing association or local authority tenants immediately before this sale?"
not_joint_purchase:
page_header: ""
check_answer_label: "Buyer was a registered provider, housing association or local authority tenant immediately before this sale"
check_answer_prompt: "Tell us if buyer was a registered provider, housing association or local authority tenant"
hint_text: ""
question_text: "Was the buyer a private registered provider, housing association or local authority tenant immediately before this sale?"
frombeds:
page_header: ""
check_answer_label: "Number of bedrooms in previous property"

14
config/locales/forms/2026/sales/sale_information.en.yml

@ -108,20 +108,6 @@ en:
hint_text: "A local authority nominations agreement is a written agreement between a local authority and private registered provider (PRP) that some or all of its sales vacancies are offered to local authorities for rehousing"
question_text: "Was the household rehoused under a 'local authority nominations agreement'?"
soctenant:
joint_purchase:
page_header: ""
check_answer_label: "Buyers were registered providers, housing association or local authority tenants immediately before this sale"
check_answer_prompt: "Tell us if buyers were registered providers, housing association or local authority tenants"
hint_text: ""
question_text: "Were any of the buyers private registered providers, housing association or local authority tenants immediately before this sale?"
not_joint_purchase:
page_header: ""
check_answer_label: "Buyer was a registered provider, housing association or local authority tenant immediately before this sale"
check_answer_prompt: "Tell us if buyer was a registered provider, housing association or local authority tenant"
hint_text: ""
question_text: "Was the buyer a private registered provider, housing association or local authority tenant immediately before this sale?"
frombeds:
page_header: ""
check_answer_label: "Number of bedrooms in previous property"

77
spec/models/form/sales/pages/buyer_previous_spec.rb

@ -1,77 +0,0 @@
require "rails_helper"
RSpec.describe Form::Sales::Pages::BuyerPrevious, type: :model do
subject(:page) { described_class.new(page_id, page_definition, subsection, joint_purchase:) }
let(:log) { build(:sales_log, :completed) }
let(:page_id) { "example" }
let(:page_definition) { nil }
let(:subsection) { instance_double(Form::Subsection, depends_on: nil, enabled?: true, form:) }
let(:start_date_after_2024) { false }
let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1), start_year_2024_or_later?: start_date_after_2024, depends_on_met: true) }
let(:joint_purchase) { false }
it "has correct subsection" do
expect(page.subsection).to eq(subsection)
end
it "has correct questions" do
expect(page.questions.map(&:id)).to eq(%w[soctenant])
end
it "has the correct id" do
expect(page.id).to eq("example")
end
it "has the correct description" do
expect(page.description).to be_nil
end
context "when sales is a joint purchase" do
let(:joint_purchase) { true }
it "has the correct depends on" do
expect(page.depends_on).to eq([{ "joint_purchase?" => true, "soctenant_is_inferred?" => false }])
end
end
context "when sales is not a joint purchase" do
it "has the correct depends on" do
expect(page.depends_on).to eq([{ "joint_purchase?" => false, "soctenant_is_inferred?" => false }])
end
end
context "with 23/24 log" do
let(:start_date_after_2024) { false }
it "has correct routed to" do
log.staircase = 1
expect(page.routed_to?(log, nil)).to be(true)
end
end
context "with 24/25 log" do
let(:start_date_after_2024) { true }
it "has correct routed to when staircase is yes" do
log.staircase = 1
expect(page.routed_to?(log, nil)).to be(false)
end
it "has correct routed to when staircase is nil" do
log.staircase = nil
expect(page.routed_to?(log, nil)).to be(true)
end
it "has correct routed to when staircase is no" do
log.staircase = 2
expect(page.routed_to?(log, nil)).to be(true)
end
it "has correct routed to when staircase is don't know" do
log.staircase = 3
expect(page.routed_to?(log, nil)).to be(true)
end
end
end

8
spec/models/form/sales/pages/previous_bedrooms_spec.rb

@ -31,10 +31,10 @@ RSpec.describe Form::Sales::Pages::PreviousBedrooms, type: :model do
{
"soctenant" => 0,
},
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 2 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 2 },
{ "ownershipsch" => 1, "prevten" => 1 },
{ "ownershipsch" => 1, "prevten" => 2 },
{ "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "ownershipsch" => 1, "prevtenbuy2" => 2 },
])
end
end

8
spec/models/form/sales/pages/previous_property_type_spec.rb

@ -31,10 +31,10 @@ RSpec.describe Form::Sales::Pages::PreviousPropertyType, type: :model do
{
"soctenant" => 0,
},
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 2 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 2 },
{ "ownershipsch" => 1, "prevten" => 1 },
{ "ownershipsch" => 1, "prevten" => 2 },
{ "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "ownershipsch" => 1, "prevtenbuy2" => 2 },
])
end
end

8
spec/models/form/sales/pages/previous_tenure_spec.rb

@ -31,10 +31,10 @@ RSpec.describe Form::Sales::Pages::PreviousTenure, type: :model do
{
"soctenant" => 0,
},
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevten" => 2 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "soctenant_is_inferred?" => true, "ownershipsch" => 1, "prevtenbuy2" => 2 },
{ "ownershipsch" => 1, "prevten" => 1 },
{ "ownershipsch" => 1, "prevten" => 2 },
{ "ownershipsch" => 1, "prevtenbuy2" => 1 },
{ "ownershipsch" => 1, "prevtenbuy2" => 2 },
])
end
end

68
spec/models/form/sales/questions/buyer_previous_spec.rb

@ -1,68 +0,0 @@
require "rails_helper"
RSpec.describe Form::Sales::Questions::BuyerPrevious, type: :model do
subject(:question) { described_class.new(question_id, question_definition, page, joint_purchase:) }
let(:question_id) { nil }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
let(:subsection) { instance_double(Form::Subsection) }
let(:form) { instance_double(Form, start_date: Time.zone.local(2023, 4, 1)) }
let(:joint_purchase) { true }
before do
allow(page).to receive(:subsection).and_return(subsection)
allow(subsection).to receive(:form).and_return(form)
end
it "has correct page" do
expect(question.page).to eq(page)
end
it "has the correct id" do
expect(question.id).to eq("soctenant")
end
it "has the correct type" do
expect(question.type).to eq("radio")
end
it "has the correct displayed_answer_options" do
expect(question.displayed_answer_options(nil)).to eq({
"1" => { "value" => "Yes" },
"2" => { "value" => "No" },
})
end
it "has the correct answer_options" do
expect(question.answer_options).to eq({
"1" => { "value" => "Yes" },
"2" => { "value" => "No" },
"0" => { "value" => "Don’t know" },
})
end
it "has correct conditional for" do
expect(question.conditional_for).to be_nil
end
context "when form year is before 2024" do
before do
allow(form).to receive(:start_year_2024_or_later?).and_return(false)
end
it "is not marked as derived" do
expect(question.derived?(nil)).to be false
end
end
context "when form year is >= 2024" do
before do
allow(form).to receive(:start_year_2024_or_later?).and_return(true)
end
it "is marked as derived" do
expect(question.derived?(nil)).to be true
end
end
end

9
spec/models/form/sales/subsections/shared_ownership_initial_purchase_spec.rb

@ -7,11 +7,10 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipInitialPurchase, type: :
let(:subsection_id) { nil }
let(:subsection_definition) { nil }
let(:start_year_2024_or_later?) { true }
let(:start_year_2025_or_later?) { true }
let(:start_year_2026_or_later?) { true }
let(:start_date) { current_collection_start_date }
let(:form) { instance_double(Form, start_date:, start_year_2024_or_later?: start_year_2024_or_later?, start_year_2025_or_later?: start_year_2025_or_later?, start_year_2026_or_later?: start_year_2026_or_later?) }
let(:form) { instance_double(Form, start_date:, start_year_2025_or_later?: start_year_2025_or_later?, start_year_2026_or_later?: start_year_2026_or_later?) }
let(:section) { instance_double(Form::Sales::Sections::SaleInformation) }
before do
@ -35,8 +34,6 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipInitialPurchase, type: :
living_before_purchase_shared_ownership
handover_date
handover_date_check
buyer_previous_joint_purchase
buyer_previous_not_joint_purchase
previous_bedrooms
previous_property_type
shared_ownership_previous_tenure
@ -75,8 +72,6 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipInitialPurchase, type: :
living_before_purchase_shared_ownership
handover_date
handover_date_check
buyer_previous_joint_purchase
buyer_previous_not_joint_purchase
previous_bedrooms
previous_property_type
shared_ownership_previous_tenure
@ -114,8 +109,6 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipInitialPurchase, type: :
living_before_purchase_shared_ownership
handover_date
handover_date_check
buyer_previous_joint_purchase
buyer_previous_not_joint_purchase
previous_bedrooms
previous_property_type
shared_ownership_previous_tenure

2
spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb

@ -31,8 +31,6 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipScheme, type: :model do
handover_date
handover_date_check
la_nominations
buyer_previous_joint_purchase
buyer_previous_not_joint_purchase
previous_bedrooms
previous_property_type
shared_ownership_previous_tenure

Loading…
Cancel
Save