@ -1,57 +1,21 @@
require " rails_helper "
RSpec . describe Form :: Sales :: Subsections :: DiscountedOwnershipScheme , type : :model do
include CollectionTimeHelper
subject ( :discounted_ownership_scheme ) { described_class . new ( subsection_id , subsection_definition , section ) }
let ( :subsection_id ) { nil }
let ( :subsection_definition ) { nil }
let ( :form ) { instance_double ( Form , start_date : Time . zone . local ( 2024 , 4 , 1 ) , start_year_2025_or_later? : false ) }
let ( :start_year_2025_or_later? ) { true }
let ( :start_year_2026_or_later? ) { true }
let ( :form ) { instance_double ( Form , start_date : current_collection_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 , form : ) }
it " has correct section " do
expect ( discounted_ownership_scheme . section ) . to eq ( section )
end
it " has correct pages " do
expect ( discounted_ownership_scheme . pages . map ( & :id ) ) . to eq (
%w[
living_before_purchase_discounted_ownership_joint_purchase
living_before_purchase_discounted_ownership
purchase_price
discount
extra_borrowing_price_value_check
percentage_discount_value_check
grant
grant_value_check
purchase_price_discounted_ownership
discounted_sale_grant_value_check
about_price_discounted_ownership_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_value_and_discount
mortgage_used_discounted_ownership
discounted_ownership_mortgage_used_mortgage_value_check
discounted_sale_mortgage_used_value_check
mortgage_amount_discounted_ownership
discounted_ownership_mortgage_amount_mortgage_value_check
discounted_sale_mortgage_value_check
extra_borrowing_mortgage_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_mortgage
mortgage_lender_discounted_ownership
mortgage_lender_other_discounted_ownership
mortgage_length_discounted_ownership
extra_borrowing_discounted_ownership
extra_borrowing_value_check
deposit_discounted_ownership
extra_borrowing_deposit_value_check
discounted_ownership_deposit_joint_purchase_value_check
discounted_ownership_deposit_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_deposit
discounted_sale_deposit_value_check
leasehold_charges_discounted_ownership
monthly_charges_discounted_ownership_value_check
] ,
)
end
it " has the correct id " do
expect ( discounted_ownership_scheme . id ) . to eq ( " discounted_ownership_scheme " )
end
@ -88,8 +52,9 @@ RSpec.describe Form::Sales::Subsections::DiscountedOwnershipScheme, type: :model
end
end
context " with form on or after 2025 " do
let ( :form ) { instance_double ( Form , start_date : Time . zone . local ( 2025 , 4 , 1 ) , start_year_2025_or_later? : true ) }
context " when 2024 " , metadata : { year : 24 } do
let ( :start_year_2025_or_later? ) { false }
let ( :start_year_2026_or_later? ) { false }
it " has correct pages " do
expect ( discounted_ownership_scheme . pages . map ( & :id ) ) . to eq (
@ -114,6 +79,8 @@ RSpec.describe Form::Sales::Subsections::DiscountedOwnershipScheme, type: :model
discounted_sale_mortgage_value_check
extra_borrowing_mortgage_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_mortgage
mortgage_lender_discounted_ownership
mortgage_lender_other_discounted_ownership
mortgage_length_discounted_ownership
extra_borrowing_discounted_ownership
extra_borrowing_value_check
@ -129,4 +96,87 @@ RSpec.describe Form::Sales::Subsections::DiscountedOwnershipScheme, type: :model
)
end
end
context " when 2025 " , metadata : { year : 25 } do
let ( :start_year_2026_or_later? ) { false }
it " has correct pages " do
expect ( discounted_ownership_scheme . pages . map ( & :id ) ) . to eq (
%w[
living_before_purchase_discounted_ownership_joint_purchase
living_before_purchase_discounted_ownership
purchase_price
discount
extra_borrowing_price_value_check
percentage_discount_value_check
grant
grant_value_check
purchase_price_discounted_ownership
discounted_sale_grant_value_check
about_price_discounted_ownership_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_value_and_discount
mortgage_used_discounted_ownership
discounted_ownership_mortgage_used_mortgage_value_check
discounted_sale_mortgage_used_value_check
mortgage_amount_discounted_ownership
discounted_ownership_mortgage_amount_mortgage_value_check
discounted_sale_mortgage_value_check
extra_borrowing_mortgage_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_mortgage
mortgage_length_discounted_ownership
extra_borrowing_discounted_ownership
extra_borrowing_value_check
deposit_discounted_ownership
extra_borrowing_deposit_value_check
discounted_ownership_deposit_joint_purchase_value_check
discounted_ownership_deposit_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_deposit
discounted_sale_deposit_value_check
leasehold_charges_discounted_ownership
monthly_charges_discounted_ownership_value_check
] ,
)
end
end
context " when 2026 " , metadata : { year : 26 } do
it " has correct pages " do
expect ( discounted_ownership_scheme . pages . map ( & :id ) ) . to eq (
%w[
living_before_purchase_discounted_ownership_joint_purchase
living_before_purchase_discounted_ownership
purchase_price
discount
extra_borrowing_price_value_check
percentage_discount_value_check
grant
grant_value_check
purchase_price_discounted_ownership
discounted_sale_grant_value_check
about_price_discounted_ownership_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_value_and_discount
mortgage_used_discounted_ownership
discounted_ownership_mortgage_used_mortgage_value_check
discounted_sale_mortgage_used_value_check
mortgage_amount_discounted_ownership
discounted_ownership_mortgage_amount_mortgage_value_check
discounted_sale_mortgage_value_check
extra_borrowing_mortgage_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_mortgage
mortgage_length_discounted_ownership_not_interviewed
mortgage_length_discounted_ownership_interviewed
extra_borrowing_discounted_ownership
extra_borrowing_value_check
deposit_discounted_ownership
extra_borrowing_deposit_value_check
discounted_ownership_deposit_joint_purchase_value_check
discounted_ownership_deposit_value_check
discounted_ownership_deposit_and_mortgage_value_check_after_deposit
discounted_sale_deposit_value_check
leasehold_charges_discounted_ownership
monthly_charges_discounted_ownership_value_check
] ,
)
end
end
end