Browse Source

CLDC-4145: Update tests

CLDC-4145-dont-ask-partner-for-children
Samuel Young 4 days ago
parent
commit
8f9de3d4a5
  1. 4
      app/helpers/collection_time_helper.rb
  2. 62
      spec/models/form/lettings/questions/person_partner_spec.rb
  3. 149
      spec/models/form/lettings/subsections/household_characteristics_spec.rb

4
app/helpers/collection_time_helper.rb

@ -4,6 +4,10 @@ module CollectionTimeHelper
date < window_end_date ? date.year - 1 : date.year date < window_end_date ? date.year - 1 : date.year
end end
def collection_start_date_for_year(year)
Time.zone.local(year, 4, 1)
end
def current_collection_start_year def current_collection_start_year
collection_start_year_for_date(Time.zone.now) collection_start_year_for_date(Time.zone.now)
end end

62
spec/models/form/lettings/questions/person_partner_spec.rb

@ -1,10 +1,26 @@
require "rails_helper" require "rails_helper"
RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do
include CollectionTimeHelper
subject(:question) { described_class.new(nil, question_definition, page, person_index:) } subject(:question) { described_class.new(nil, question_definition, page, person_index:) }
let(:question_definition) { 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(2025, 4, 4), start_year_2025_or_later?: true))) } let(:year) { nil }
let(:page) {
instance_double(
Form::Page,
subsection: instance_double(
Form::Subsection,
form: instance_double(
Form,
start_date: year ? collection_start_date_for_year(year) : current_collection_start_date,
start_year_2025_or_later?: year.nil? || year >= 2025,
start_year_2026_or_later?: year.nil? || year >= 2026,
)
)
)
}
let(:person_index) { 2 } let(:person_index) { 2 }
it "has correct page" do it "has correct page" do
@ -15,10 +31,6 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do
expect(question.type).to eq("radio") expect(question.type).to eq("radio")
end end
it "is not marked as derived" do
expect(question.derived?(nil)).to be false
end
it "has the correct answer_options" do it "has the correct answer_options" do
expect(question.answer_options).to eq("P" => { "value" => "Yes" }, expect(question.answer_options).to eq("P" => { "value" => "Yes" },
"X" => { "value" => "No" }, "X" => { "value" => "No" },
@ -41,6 +53,46 @@ RSpec.describe Form::Lettings::Questions::PersonPartner, type: :model do
it "has the correct check_answers_card_number" do it "has the correct check_answers_card_number" do
expect(question.check_answers_card_number).to eq(2) expect(question.check_answers_card_number).to eq(2)
end end
context "with person 2 age < 16" do
let(:log) { build(:lettings_log, age2: 10) }
context "and in 2025", metadata: { year: 25 } do
let(:year) { 2025 }
it "is not marked as derived" do
expect(question.derived?(log)).to be false
end
end
context "and in 2026", metadata: { year: 26 } do
let(:year) { 2026 }
it "is marked as derived" do
expect(question.derived?(log)).to be true
end
end
end
context "with person 2 age >= 16" do
let(:log) { build(:lettings_log, age2: 20) }
context "and in 2025", metadata: { year: 25 } do
let(:year) { 2025 }
it "is not marked as derived" do
expect(question.derived?(log)).to be false
end
end
context "and in 2026", metadata: { year: 26 } do
let(:year) { 2026 }
it "is not marked as derived" do
expect(question.derived?(log)).to be false
end
end
end
end end
context "with person 3" do context "with person 3" do

149
spec/models/form/lettings/subsections/household_characteristics_spec.rb

@ -17,141 +17,6 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod
expect(household_characteristics.section).to eq(section) expect(household_characteristics.section).to eq(section)
end end
context "with start year before 2024" do
before do
allow(form).to receive(:start_year_2024_or_later?).and_return(false)
allow(form).to receive(:start_year_2026_or_later?).and_return(false)
end
it "has correct pages" do
expect(household_characteristics.pages.map(&:id)).to eq(
%w[
declaration
household_members
no_females_pregnant_household_lead_hhmemb_value_check
females_in_soft_age_range_in_pregnant_household_lead_hhmemb_value_check
lead_tenant_age
no_females_pregnant_household_lead_age_value_check
females_in_soft_age_range_in_pregnant_household_lead_age_value_check
age_lead_tenant_under_retirement_value_check
age_lead_tenant_over_retirement_value_check
lead_tenant_gender_identity
no_females_pregnant_household_lead_value_check
females_in_soft_age_range_in_pregnant_household_lead_value_check
gender_lead_tenant_over_retirement_value_check
lead_tenant_ethnic_group
lead_tenant_ethnic_background_arab
lead_tenant_ethnic_background_asian
lead_tenant_ethnic_background_black
lead_tenant_ethnic_background_mixed
lead_tenant_ethnic_background_white
lead_tenant_nationality
lead_tenant_working_situation
working_situation_lead_tenant_under_retirement_value_check
working_situation_lead_tenant_over_retirement_value_check
person_2_known
person_2_relationship_to_lead
person_2_age
no_females_pregnant_household_person_2_age_value_check
females_in_soft_age_range_in_pregnant_household_person_2_age_value_check
age_2_under_retirement_value_check
age_2_over_retirement_value_check
person_2_gender_identity
no_females_pregnant_household_person_2_value_check
females_in_soft_age_range_in_pregnant_household_person_2_value_check
gender_2_over_retirement_value_check
person_2_working_situation
working_situation_2_under_retirement_value_check
working_situation_2_over_retirement_value_check
person_3_known
person_3_relationship_to_lead
person_3_age
no_females_pregnant_household_person_3_age_value_check
females_in_soft_age_range_in_pregnant_household_person_3_age_value_check
age_3_under_retirement_value_check
age_3_over_retirement_value_check
person_3_gender_identity
no_females_pregnant_household_person_3_value_check
females_in_soft_age_range_in_pregnant_household_person_3_value_check
gender_3_over_retirement_value_check
person_3_working_situation
working_situation_3_under_retirement_value_check
working_situation_3_over_retirement_value_check
person_4_known
person_4_relationship_to_lead
person_4_age
no_females_pregnant_household_person_4_age_value_check
females_in_soft_age_range_in_pregnant_household_person_4_age_value_check
age_4_under_retirement_value_check
age_4_over_retirement_value_check
person_4_gender_identity
no_females_pregnant_household_person_4_value_check
females_in_soft_age_range_in_pregnant_household_person_4_value_check
gender_4_over_retirement_value_check
person_4_working_situation
working_situation_4_under_retirement_value_check
working_situation_4_over_retirement_value_check
person_5_known
person_5_relationship_to_lead
person_5_age
no_females_pregnant_household_person_5_age_value_check
females_in_soft_age_range_in_pregnant_household_person_5_age_value_check
age_5_under_retirement_value_check
age_5_over_retirement_value_check
person_5_gender_identity
no_females_pregnant_household_person_5_value_check
females_in_soft_age_range_in_pregnant_household_person_5_value_check
gender_5_over_retirement_value_check
person_5_working_situation
working_situation_5_under_retirement_value_check
working_situation_5_over_retirement_value_check
person_6_known
person_6_relationship_to_lead
person_6_age
no_females_pregnant_household_person_6_age_value_check
females_in_soft_age_range_in_pregnant_household_person_6_age_value_check
age_6_under_retirement_value_check
age_6_over_retirement_value_check
person_6_gender_identity
no_females_pregnant_household_person_6_value_check
females_in_soft_age_range_in_pregnant_household_person_6_value_check
gender_6_over_retirement_value_check
person_6_working_situation
working_situation_6_under_retirement_value_check
working_situation_6_over_retirement_value_check
person_7_known
person_7_relationship_to_lead
person_7_age
no_females_pregnant_household_person_7_age_value_check
females_in_soft_age_range_in_pregnant_household_person_7_age_value_check
age_7_under_retirement_value_check
age_7_over_retirement_value_check
person_7_gender_identity
no_females_pregnant_household_person_7_value_check
females_in_soft_age_range_in_pregnant_household_person_7_value_check
gender_7_over_retirement_value_check
person_7_working_situation
working_situation_7_under_retirement_value_check
working_situation_7_over_retirement_value_check
person_8_known
person_8_relationship_to_lead
person_8_age
no_females_pregnant_household_person_8_age_value_check
females_in_soft_age_range_in_pregnant_household_person_8_age_value_check
age_8_under_retirement_value_check
age_8_over_retirement_value_check
person_8_gender_identity
no_females_pregnant_household_person_8_value_check
females_in_soft_age_range_in_pregnant_household_person_8_value_check
gender_8_over_retirement_value_check
person_8_working_situation
working_situation_8_under_retirement_value_check
working_situation_8_over_retirement_value_check
],
)
end
end
context "with start year 2024" do context "with start year 2024" do
before do before do
allow(form).to receive(:start_year_2024_or_later?).and_return(true) allow(form).to receive(:start_year_2024_or_later?).and_return(true)
@ -498,13 +363,11 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod
person_2_known person_2_known
person_2_age person_2_age
person_2_lead_partner person_2_lead_partner
relationship_2_partner_under_16_value_check
relationship_2_multiple_partners_value_check relationship_2_multiple_partners_value_check
no_females_pregnant_household_person_2_age_value_check no_females_pregnant_household_person_2_age_value_check
females_in_soft_age_range_in_pregnant_household_person_2_age_value_check females_in_soft_age_range_in_pregnant_household_person_2_age_value_check
age_2_under_retirement_value_check age_2_under_retirement_value_check
age_2_over_retirement_value_check age_2_over_retirement_value_check
age_2_partner_under_16_value_check
person_2_gender_identity person_2_gender_identity
no_females_pregnant_household_person_2_value_check no_females_pregnant_household_person_2_value_check
females_in_soft_age_range_in_pregnant_household_person_2_value_check females_in_soft_age_range_in_pregnant_household_person_2_value_check
@ -515,13 +378,11 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod
person_3_known person_3_known
person_3_age person_3_age
person_3_lead_partner person_3_lead_partner
relationship_3_partner_under_16_value_check
relationship_3_multiple_partners_value_check relationship_3_multiple_partners_value_check
no_females_pregnant_household_person_3_age_value_check no_females_pregnant_household_person_3_age_value_check
females_in_soft_age_range_in_pregnant_household_person_3_age_value_check females_in_soft_age_range_in_pregnant_household_person_3_age_value_check
age_3_under_retirement_value_check age_3_under_retirement_value_check
age_3_over_retirement_value_check age_3_over_retirement_value_check
age_3_partner_under_16_value_check
person_3_gender_identity person_3_gender_identity
no_females_pregnant_household_person_3_value_check no_females_pregnant_household_person_3_value_check
females_in_soft_age_range_in_pregnant_household_person_3_value_check females_in_soft_age_range_in_pregnant_household_person_3_value_check
@ -532,13 +393,11 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod
person_4_known person_4_known
person_4_age person_4_age
person_4_lead_partner person_4_lead_partner
relationship_4_partner_under_16_value_check
relationship_4_multiple_partners_value_check relationship_4_multiple_partners_value_check
no_females_pregnant_household_person_4_age_value_check no_females_pregnant_household_person_4_age_value_check
females_in_soft_age_range_in_pregnant_household_person_4_age_value_check females_in_soft_age_range_in_pregnant_household_person_4_age_value_check
age_4_under_retirement_value_check age_4_under_retirement_value_check
age_4_over_retirement_value_check age_4_over_retirement_value_check
age_4_partner_under_16_value_check
person_4_gender_identity person_4_gender_identity
no_females_pregnant_household_person_4_value_check no_females_pregnant_household_person_4_value_check
females_in_soft_age_range_in_pregnant_household_person_4_value_check females_in_soft_age_range_in_pregnant_household_person_4_value_check
@ -549,13 +408,11 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod
person_5_known person_5_known
person_5_age person_5_age
person_5_lead_partner person_5_lead_partner
relationship_5_partner_under_16_value_check
relationship_5_multiple_partners_value_check relationship_5_multiple_partners_value_check
no_females_pregnant_household_person_5_age_value_check no_females_pregnant_household_person_5_age_value_check
females_in_soft_age_range_in_pregnant_household_person_5_age_value_check females_in_soft_age_range_in_pregnant_household_person_5_age_value_check
age_5_under_retirement_value_check age_5_under_retirement_value_check
age_5_over_retirement_value_check age_5_over_retirement_value_check
age_5_partner_under_16_value_check
person_5_gender_identity person_5_gender_identity
no_females_pregnant_household_person_5_value_check no_females_pregnant_household_person_5_value_check
females_in_soft_age_range_in_pregnant_household_person_5_value_check females_in_soft_age_range_in_pregnant_household_person_5_value_check
@ -566,13 +423,11 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod
person_6_known person_6_known
person_6_age person_6_age
person_6_lead_partner person_6_lead_partner
relationship_6_partner_under_16_value_check
relationship_6_multiple_partners_value_check relationship_6_multiple_partners_value_check
no_females_pregnant_household_person_6_age_value_check no_females_pregnant_household_person_6_age_value_check
females_in_soft_age_range_in_pregnant_household_person_6_age_value_check females_in_soft_age_range_in_pregnant_household_person_6_age_value_check
age_6_under_retirement_value_check age_6_under_retirement_value_check
age_6_over_retirement_value_check age_6_over_retirement_value_check
age_6_partner_under_16_value_check
person_6_gender_identity person_6_gender_identity
no_females_pregnant_household_person_6_value_check no_females_pregnant_household_person_6_value_check
females_in_soft_age_range_in_pregnant_household_person_6_value_check females_in_soft_age_range_in_pregnant_household_person_6_value_check
@ -583,13 +438,11 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod
person_7_known person_7_known
person_7_age person_7_age
person_7_lead_partner person_7_lead_partner
relationship_7_partner_under_16_value_check
relationship_7_multiple_partners_value_check relationship_7_multiple_partners_value_check
no_females_pregnant_household_person_7_age_value_check no_females_pregnant_household_person_7_age_value_check
females_in_soft_age_range_in_pregnant_household_person_7_age_value_check females_in_soft_age_range_in_pregnant_household_person_7_age_value_check
age_7_under_retirement_value_check age_7_under_retirement_value_check
age_7_over_retirement_value_check age_7_over_retirement_value_check
age_7_partner_under_16_value_check
person_7_gender_identity person_7_gender_identity
no_females_pregnant_household_person_7_value_check no_females_pregnant_household_person_7_value_check
females_in_soft_age_range_in_pregnant_household_person_7_value_check females_in_soft_age_range_in_pregnant_household_person_7_value_check
@ -600,13 +453,11 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod
person_8_known person_8_known
person_8_age person_8_age
person_8_lead_partner person_8_lead_partner
relationship_8_partner_under_16_value_check
relationship_8_multiple_partners_value_check relationship_8_multiple_partners_value_check
no_females_pregnant_household_person_8_age_value_check no_females_pregnant_household_person_8_age_value_check
females_in_soft_age_range_in_pregnant_household_person_8_age_value_check females_in_soft_age_range_in_pregnant_household_person_8_age_value_check
age_8_under_retirement_value_check age_8_under_retirement_value_check
age_8_over_retirement_value_check age_8_over_retirement_value_check
age_8_partner_under_16_value_check
person_8_gender_identity person_8_gender_identity
no_females_pregnant_household_person_8_value_check no_females_pregnant_household_person_8_value_check
females_in_soft_age_range_in_pregnant_household_person_8_value_check females_in_soft_age_range_in_pregnant_household_person_8_value_check

Loading…
Cancel
Save