Browse Source

fixup! CLDC-4189: Add tests

fix missing cases in page specs

use a loop and before blocks for household validation tests
CLDC-4191-referral-question-csv-xml
Samuel Young 2 weeks ago
parent
commit
73be38242e
  1. 8
      spec/models/form/lettings/pages/referral_org_directly_referred_spec.rb
  2. 8
      spec/models/form/lettings/pages/referral_org_nominated_spec.rb
  3. 213
      spec/models/validations/household_validations_spec.rb

8
spec/models/form/lettings/pages/referral_org_directly_referred_spec.rb

@ -37,6 +37,14 @@ RSpec.describe Form::Lettings::Pages::ReferralOrgDirectlyReferred, type: :model
expect(page.depends_on).to be nil expect(page.depends_on).to be nil
end end
context "and log owning organisation is not prp" do
let(:prp?) { false }
it "is not routed to" do
expect(page.routed_to?(log, nil)).to be false
end
end
context "and log owning organisation is prp" do context "and log owning organisation is prp" do
let(:prp?) { true } let(:prp?) { true }

8
spec/models/form/lettings/pages/referral_org_nominated_spec.rb

@ -37,6 +37,14 @@ RSpec.describe Form::Lettings::Pages::ReferralOrgNominated, type: :model do
expect(page.depends_on).to be nil expect(page.depends_on).to be nil
end end
context "and log owning organisation is not prp" do
let(:prp?) { false }
it "is not routed to" do
expect(page.routed_to?(log, nil)).to be false
end
end
context "and log owning organisation is prp" do context "and log owning organisation is prp" do
let(:prp?) { true } let(:prp?) { true }

213
spec/models/validations/household_validations_spec.rb

@ -494,128 +494,107 @@ RSpec.describe Validations::HouseholdValidations do
context "when start year is 2026" do context "when start year is 2026" do
let(:startdate) { collection_start_date_for_year(2026) } let(:startdate) { collection_start_date_for_year(2026) }
context "and record is internal transfer via LA path" do [
before do {
record.owning_organisation.provider_type = "LA" internal_transfer: true,
record.referral_register = 2 label: "LA",
end referral_register: 2,
referral_noms: nil,
[ },
{ code: 3, label: "Private sector tenancy" }, {
{ code: 27, label: "Owner occupation (low-cost home ownership)" }, internal_transfer: true,
{ code: 26, label: "Owner occupation (private)" }, label: "PRP",
{ code: 28, label: "Living with friends or family (long-term)" }, referral_register: 6,
{ code: 39, label: "Sofa surfing (moving regularly between family or friends, no permanent bed)" }, referral_noms: 3,
{ code: 14, label: "Bed and breakfast" }, },
{ code: 7, label: "Direct access hostel" }, {
{ code: 10, label: "Hospital" }, internal_transfer: false,
{ code: 29, label: "Prison or approved probation hostel" }, label: "LA",
{ code: 19, label: "Rough sleeping" }, referral_register: 1,
{ code: 18, label: "Any other temporary accommodation" }, referral_noms: nil,
{ code: 13, label: "Children’s home or foster care" }, },
{ code: 24, label: "Home Office Asylum Support" }, {
{ code: 37, label: "Host family or similar refugee accommodation" }, internal_transfer: false,
{ code: 23, label: "Mobile home or caravan" }, label: "PRP",
{ code: 21, label: "Refuge" }, referral_register: 6,
{ code: 9, label: "Residential care home" }, referral_noms: 2,
{ code: 4, label: "Tied housing or rented with job" }, },
{ code: 25, label: "Any other accommodation" }, ]
].each do |prevten| .each do |scenario|
context "and prevten is #{prevten[:code]}" do context "and record #{scenario[:internal_transfer] ? 'is ' : ''}internal transfer via #{scenario[:label]} path" do
it "adds an error" do before do
record.referral_register = 2 record.owning_organisation.provider_type = scenario[:label]
record.prevten = prevten[:code] record.referral_register = scenario[:referral_register]
household_validator.validate_referral(record) record.referral_noms = scenario[:referral_noms]
expect(record.errors["prevten"])
.to include(match I18n.t("validations.lettings.household.prevten.general_needs.internal_transfer", prevten: prevten[:label]))
expect(record.errors["referral_register"])
.to include(match I18n.t("validations.lettings.household.referral.general_needs.internal_transfer", prevten: prevten[:label]))
end
end
end
[
{ code: 30, label: "Fixed-term local authority general needs tenancy" },
{ code: 31, label: "Lifetime local authority general needs tenancy" },
{ code: 32, label: "Fixed-term private registered provider (PRP) general needs tenancy" },
{ code: 33, label: "Lifetime private registered provider (PRP) general needs tenancy" },
{ code: 35, label: "Extra care housing" },
{ code: 38, label: "Older people’s housing for tenants with low support needs" },
{ code: 6, label: "Other supported housing" },
].each do |prevten|
context "and prevten is #{prevten[:code]}" do
before do
record.prevten = prevten[:code]
end
it "does not add an error" do
household_validator.validate_referral(record)
expect(record.errors["prevten"]).to be_empty
expect(record.errors["referral"]).to be_empty
end
end end
end
end
context "and record is internal transfer via PRP path" do
before do
record.owning_organisation.provider_type = "PRP"
record.referral_register = 6
record.referral_noms = 3
end
[ [
{ code: 3, label: "Private sector tenancy" }, { code: 3, label: "Private sector tenancy" },
{ code: 27, label: "Owner occupation (low-cost home ownership)" }, { code: 27, label: "Owner occupation (low-cost home ownership)" },
{ code: 26, label: "Owner occupation (private)" }, { code: 26, label: "Owner occupation (private)" },
{ code: 28, label: "Living with friends or family (long-term)" }, { code: 28, label: "Living with friends or family (long-term)" },
{ code: 39, label: "Sofa surfing (moving regularly between family or friends, no permanent bed)" }, { code: 39, label: "Sofa surfing (moving regularly between family or friends, no permanent bed)" },
{ code: 14, label: "Bed and breakfast" }, { code: 14, label: "Bed and breakfast" },
{ code: 7, label: "Direct access hostel" }, { code: 7, label: "Direct access hostel" },
{ code: 10, label: "Hospital" }, { code: 10, label: "Hospital" },
{ code: 29, label: "Prison or approved probation hostel" }, { code: 29, label: "Prison or approved probation hostel" },
{ code: 19, label: "Rough sleeping" }, { code: 19, label: "Rough sleeping" },
{ code: 18, label: "Any other temporary accommodation" }, { code: 18, label: "Any other temporary accommodation" },
{ code: 13, label: "Children’s home or foster care" }, { code: 13, label: "Children’s home or foster care" },
{ code: 24, label: "Home Office Asylum Support" }, { code: 24, label: "Home Office Asylum Support" },
{ code: 37, label: "Host family or similar refugee accommodation" }, { code: 37, label: "Host family or similar refugee accommodation" },
{ code: 23, label: "Mobile home or caravan" }, { code: 23, label: "Mobile home or caravan" },
{ code: 21, label: "Refuge" }, { code: 21, label: "Refuge" },
{ code: 9, label: "Residential care home" }, { code: 9, label: "Residential care home" },
{ code: 4, label: "Tied housing or rented with job" }, { code: 4, label: "Tied housing or rented with job" },
{ code: 25, label: "Any other accommodation" }, { code: 25, label: "Any other accommodation" },
].each do |prevten| ].each do |prevten|
context "and prevten is #{prevten[:code]}" do context "and prevten is #{prevten[:code]}" do
it "adds an error" do before do
record.referral_register = 2 record.prevten = prevten[:code]
record.prevten = prevten[:code] end
household_validator.validate_referral(record)
expect(record.errors["prevten"]) if scenario[:internal_transfer]
.to include(match I18n.t("validations.lettings.household.prevten.general_needs.internal_transfer", prevten: prevten[:label])) it "adds an error" do
expect(record.errors["referral_register"]) household_validator.validate_referral(record)
.to include(match I18n.t("validations.lettings.household.referral.general_needs.internal_transfer", prevten: prevten[:label])) expect(record.errors["prevten"])
.to include(match I18n.t("validations.lettings.household.prevten.general_needs.internal_transfer", prevten: prevten[:label]))
expect(record.errors["referral_register"])
.to include(match I18n.t("validations.lettings.household.referral.general_needs.internal_transfer", prevten: prevten[:label]))
expect(record.errors["referral_noms"])
.to include(match I18n.t("validations.lettings.household.referral.general_needs.internal_transfer", prevten: prevten[:label]))
end
else
it "does not add an error" do
household_validator.validate_referral(record)
expect(record.errors["prevten"]).to be_empty
expect(record.errors["referral_register"]).to be_empty
expect(record.errors["referral_noms"]).to be_empty
end
end
end end
end end
end
[
{ code: 30, label: "Fixed-term local authority general needs tenancy" },
{ code: 31, label: "Lifetime local authority general needs tenancy" },
{ code: 32, label: "Fixed-term private registered provider (PRP) general needs tenancy" },
{ code: 33, label: "Lifetime private registered provider (PRP) general needs tenancy" },
{ code: 35, label: "Extra care housing" },
{ code: 38, label: "Older people’s housing for tenants with low support needs" },
{ code: 6, label: "Other supported housing" },
].each do |prevten|
context "and prevten is #{prevten[:code]}" do
before do
record.prevten = prevten[:code]
end
it "does not add an error" do [
household_validator.validate_referral(record) { code: 30, label: "Fixed-term local authority general needs tenancy" },
expect(record.errors["prevten"]).to be_empty { code: 31, label: "Lifetime local authority general needs tenancy" },
expect(record.errors["referral"]).to be_empty { code: 32, label: "Fixed-term private registered provider (PRP) general needs tenancy" },
{ code: 33, label: "Lifetime private registered provider (PRP) general needs tenancy" },
{ code: 35, label: "Extra care housing" },
{ code: 38, label: "Older people’s housing for tenants with low support needs" },
{ code: 6, label: "Other supported housing" },
].each do |prevten|
context "and prevten is #{prevten[:code]}" do
before do
record.prevten = prevten[:code]
end
it "does not add an error" do
household_validator.validate_referral(record)
expect(record.errors["prevten"]).to be_empty
expect(record.errors["referral_register"]).to be_empty
expect(record.errors["referral_noms"]).to be_empty
end
end end
end end
end end

Loading…
Cancel
Save