Browse Source

CLDC-3721: Sales - Move Q78 (Is this a staircasing transaction?) to setup section (25/26) (#2751)

pull/2716/head^2
Manny Dinssa 2 months ago committed by GitHub
parent
commit
154f4d9538
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3
      app/models/form/sales/pages/staircase.rb
  2. 14
      app/models/form/sales/questions/staircase.rb
  3. 1
      app/models/form/sales/subsections/setup.rb
  4. 2
      app/models/form/sales/subsections/shared_ownership_scheme.rb
  5. 5
      config/locales/forms/2025/sales/sale_information.en.yml
  6. 6
      config/locales/forms/2025/sales/setup.en.yml
  7. 20
      spec/models/form/sales/pages/staircase_spec.rb
  8. 24
      spec/models/form/sales/questions/staircase_spec.rb
  9. 1
      spec/models/form/sales/subsections/setup_spec.rb
  10. 2
      spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb

3
app/models/form/sales/pages/staircase.rb

@ -2,7 +2,8 @@ class Form::Sales::Pages::Staircase < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "staircasing"
@copy_key = "sales.sale_information.staircasing"
@depends_on = [{ "ownershipsch" => 1 }]
@copy_key = "sales.#{subsection.id}.staircasing"
end
def questions

14
app/models/form/sales/questions/staircase.rb

@ -2,17 +2,25 @@ class Form::Sales::Questions::Staircase < ::Form::Question
def initialize(id, hsh, page)
super
@id = "staircase"
@copy_key = "sales.sale_information.staircasing"
@copy_key = "sales.#{page.subsection.id}.staircasing"
@type = "radio"
@answer_options = ANSWER_OPTIONS
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end
ANSWER_OPTIONS = {
def answer_options
if form.start_year_2025_or_later?
{
"1" => { "value" => "Yes" },
"2" => { "value" => "No" },
}.freeze
else
{
"1" => { "value" => "Yes" },
"2" => { "value" => "No" },
"3" => { "value" => "Don’t know" },
}.freeze
end
end
QUESTION_NUMBER_FROM_YEAR = { 2023 => 76, 2024 => 78 }.freeze
end

1
app/models/form/sales/subsections/setup.rb

@ -13,6 +13,7 @@ class Form::Sales::Subsections::Setup < ::Form::Subsection
Form::Sales::Pages::CreatedBy.new(nil, nil, self),
Form::Sales::Pages::PurchaserCode.new(nil, nil, self),
Form::Sales::Pages::OwnershipScheme.new(nil, nil, self),
(Form::Sales::Pages::Staircase.new(nil, nil, self) if form.start_year_2025_or_later?),
Form::Sales::Pages::SharedOwnershipType.new(nil, nil, self),
Form::Sales::Pages::DiscountedOwnershipType.new(nil, nil, self),
(Form::Sales::Pages::OutrightOwnershipType.new(nil, nil, self) unless form.start_year_2025_or_later?),

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

@ -10,7 +10,7 @@ class Form::Sales::Subsections::SharedOwnershipScheme < ::Form::Subsection
@pages ||= [
Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_shared_ownership_joint_purchase", nil, self, ownershipsch: 1, joint_purchase: true),
Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_shared_ownership", nil, self, ownershipsch: 1, joint_purchase: false),
Form::Sales::Pages::Staircase.new(nil, nil, self),
(Form::Sales::Pages::Staircase.new(nil, nil, self) unless form.start_year_2025_or_later?),
Form::Sales::Pages::AboutStaircase.new("about_staircasing_joint_purchase", nil, self, joint_purchase: true),
Form::Sales::Pages::AboutStaircase.new("about_staircasing_not_joint_purchase", nil, self, joint_purchase: false),
Form::Sales::Pages::StaircaseBoughtValueCheck.new(nil, nil, self),

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

@ -25,11 +25,6 @@ en:
hint_text: ""
question_text: "Did the buyer live in the property before purchasing it?"
staircasing:
page_header: ""
check_answer_label: "Staircasing transaction"
hint_text: "A staircasing transaction is when the household purchases more shares in their property, increasing the proportion they own and decreasing the proportion the housing association owns. Once the household purchases 100% of the shares, they own the property"
question_text: "Is this a staircasing transaction?"
about_staircasing:
page_header: "About the staircasing transaction"
stairbought:

6
config/locales/forms/2025/sales/setup.en.yml

@ -39,6 +39,12 @@ en:
hint_text: ""
question_text: "Was this purchase made through an ownership scheme?"
staircasing:
page_header: ""
check_answer_label: "Staircasing transaction"
hint_text: "A staircasing transaction is when the household purchases more shares in their property, increasing the proportion they own and decreasing the proportion the housing association owns. Once the household purchases 100% of the shares, they own the property"
question_text: "Is this a staircasing transaction?"
type:
shared_ownership:
page_header: "Type of shared ownership sale"

20
spec/models/form/sales/pages/staircase_spec.rb

@ -7,6 +7,13 @@ RSpec.describe Form::Sales::Pages::Staircase, type: :model do
let(:page_definition) { nil }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1))) }
context "when start year is 2024" do
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)), id: "sale_information") }
before do
allow(subsection.form).to receive(:start_year_2025_or_later?).and_return(false)
end
it "has correct subsection" do
expect(page.subsection).to eq(subsection)
end
@ -22,4 +29,17 @@ RSpec.describe Form::Sales::Pages::Staircase, type: :model do
it "has the correct description" do
expect(page.description).to be_nil
end
end
context "when start year is >= 2025" do
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)), id: "setup") }
before do
allow(subsection.form).to receive(:start_year_2025_or_later?).and_return(true)
end
it "has correct subsection" do
expect(page.subsection).to eq(subsection)
end
end
end

24
spec/models/form/sales/questions/staircase_spec.rb

@ -5,7 +5,13 @@ RSpec.describe Form::Sales::Questions::Staircase, type: :model do
let(:question_id) { nil }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)))) }
context "when start year is 2024" do
let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2024, 4, 1)), id: "sale_information")) }
before do
allow(page.subsection.form).to receive(:start_year_2025_or_later?).and_return(false)
end
it "has correct page" do
expect(question.page).to eq(page)
@ -34,4 +40,20 @@ RSpec.describe Form::Sales::Questions::Staircase, type: :model do
it "has correct conditional for" do
expect(question.conditional_for).to eq(nil)
end
end
context "when start year is 2025" do
let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 1)), id: "setup")) }
before do
allow(page.subsection.form).to receive(:start_year_2025_or_later?).and_return(true)
end
it "has the correct answer_options" do
expect(question.answer_options).to eq({
"1" => { "value" => "Yes" },
"2" => { "value" => "No" },
})
end
end
end

1
spec/models/form/sales/subsections/setup_spec.rb

@ -93,6 +93,7 @@ RSpec.describe Form::Sales::Subsections::Setup, type: :model do
assigned_to
purchaser_code
ownership_scheme
staircasing
shared_ownership_type
discounted_ownership_type
buyer_company

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

@ -8,7 +8,7 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipScheme, type: :model do
let(:section) { instance_double(Form::Sales::Sections::SaleInformation) }
before do
allow(section).to receive(:form).and_return(instance_double(Form, start_year_2024_or_later?: false, start_date: Time.zone.local(2023, 4, 1)))
allow(section).to receive(:form).and_return(instance_double(Form, start_year_2024_or_later?: false, start_year_2025_or_later?: false, start_date: Time.zone.local(2023, 4, 1)))
end
it "has correct section" do

Loading…
Cancel
Save