Browse Source

Push fixes #7

pull/264/head
Stéphane Meny 3 years ago
parent
commit
7210915901
No known key found for this signature in database
GPG Key ID: 9D0AFEA988527923
  1. 198
      spec/models/case_log_spec.rb
  2. 38
      spec/models/validations/property_validations_spec.rb
  3. 4
      spec/presenters/error_summary_full_messages_presenter_spec.rb
  4. 2
      spec/requests/auth/passwords_controller_spec.rb

198
spec/models/case_log_spec.rb

@ -1,7 +1,7 @@
require "rails_helper"
require_relative "../request_helper"
RSpec.describe Form, type: :model do
RSpec.describe CaseLog do
let(:owning_organisation) { FactoryBot.create(:organisation) }
let(:managing_organisation) { owning_organisation }
@ -18,21 +18,31 @@ RSpec.describe Form, type: :model do
expect(case_log.form_name).to eq("2021_2022")
expect(case_log_2.form_name).to eq("2021_2022")
expect(case_log_year_2.form_name).to eq("2023_2024")
expect(case_log.form).to be_a(described_class)
expect(case_log.form).to be_a(Form)
end
end
describe "#new" do
it "raises an error when offered is present and invalid" do
expect {
described_class.create!(
offered: "random",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation,
)
}.to raise_error(ActiveRecord::RecordInvalid)
end
it "validates age is a number" do
expect {
CaseLog.create!(
described_class.create!(
age1: "random",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation,
)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
age3: "random",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation,
@ -42,14 +52,14 @@ RSpec.describe Form, type: :model do
it "validates age is under 120" do
expect {
CaseLog.create!(
described_class.create!(
age1: 121,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation,
)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
age3: 121,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation,
@ -59,14 +69,14 @@ RSpec.describe Form, type: :model do
it "validates age is over 0" do
expect {
CaseLog.create!(
described_class.create!(
age1: 0,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation,
)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
age3: 0,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation,
@ -77,7 +87,7 @@ RSpec.describe Form, type: :model do
context "reasonable preference is yes" do
it "validates that previously homeless should be selected" do
expect {
CaseLog.create!(
described_class.create!(
homeless: "No",
reasonpref: "Yes",
owning_organisation: owning_organisation,
@ -90,7 +100,7 @@ RSpec.describe Form, type: :model do
context "reasonable preference is no" do
it "validates no reason is needed" do
expect {
CaseLog.create!(
described_class.create!(
reasonpref: "No",
rp_homeless: "No",
owning_organisation: owning_organisation,
@ -101,7 +111,7 @@ RSpec.describe Form, type: :model do
it "validates that no reason has been provided" do
expect {
CaseLog.create!(
described_class.create!(
reasonpref: "No",
rp_medwel: "Yes",
owning_organisation: owning_organisation,
@ -114,7 +124,7 @@ RSpec.describe Form, type: :model do
context "reason for leaving last settled home validation" do
it "Reason for leaving must be don’t know if reason for leaving settled home (Q9a) is don’t know." do
expect {
CaseLog.create!(reason: "Don’t know",
described_class.create!(reason: "Don’t know",
underoccupation_benefitcap: "Yes - benefit cap",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -125,7 +135,7 @@ RSpec.describe Form, type: :model do
context "other reason for leaving last settled home validation" do
it "must be provided if main reason for leaving last settled home was given as other" do
expect {
CaseLog.create!(reason: "Other",
described_class.create!(reason: "Other",
other_reason_for_leaving_last_settled_home: nil,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -134,7 +144,7 @@ RSpec.describe Form, type: :model do
it "must not be provided if the main reason for leaving settled home is not other" do
expect {
CaseLog.create!(reason: "Repossession",
described_class.create!(reason: "Repossession",
other_reason_for_leaving_last_settled_home: "the other reason provided",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -145,7 +155,7 @@ RSpec.describe Form, type: :model do
context "armed forces injured validation" do
it "must not be answered if tenant was not a regular or reserve in armed forces" do
expect {
CaseLog.create!(armedforces: "No",
described_class.create!(armedforces: "No",
reservist: "Yes",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -156,7 +166,7 @@ RSpec.describe Form, type: :model do
context "Validate pregnancy questions" do
it "Cannot answer yes if no female tenants" do
expect {
CaseLog.create!(preg_occ: "Yes",
described_class.create!(preg_occ: "Yes",
sex1: "Male",
age1: 20,
owning_organisation: owning_organisation,
@ -166,7 +176,7 @@ RSpec.describe Form, type: :model do
it "Cannot answer yes if no female tenants within age range" do
expect {
CaseLog.create!(preg_occ: "Yes",
described_class.create!(preg_occ: "Yes",
sex1: "Female",
age1: 51,
owning_organisation: owning_organisation,
@ -176,7 +186,7 @@ RSpec.describe Form, type: :model do
it "Cannot answer prefer not to say if no valid tenants" do
expect {
CaseLog.create!(preg_occ: "Prefer not to say",
described_class.create!(preg_occ: "Prefer not to say",
sex1: "Male",
age1: 20,
owning_organisation: owning_organisation,
@ -186,7 +196,7 @@ RSpec.describe Form, type: :model do
it "Can answer yes if valid tenants" do
expect {
CaseLog.create!(preg_occ: "Yes",
described_class.create!(preg_occ: "Yes",
sex1: "Female",
age1: 20,
owning_organisation: owning_organisation,
@ -196,7 +206,7 @@ RSpec.describe Form, type: :model do
it "Can answer yes if valid second tenant" do
expect {
CaseLog.create!(preg_occ: "Yes",
described_class.create!(preg_occ: "Yes",
sex1: "Male", age1: 99,
sex2: "Female",
age2: 20,
@ -209,7 +219,7 @@ RSpec.describe Form, type: :model do
context "Property vacancy and let as validations" do
it "cannot have a previously let as type, if it hasn't been let before" do
expect {
CaseLog.create!(
described_class.create!(
first_time_property_let_as_social_housing: "No",
unitletas: "Social rent basis",
owning_organisation: owning_organisation,
@ -217,7 +227,7 @@ RSpec.describe Form, type: :model do
)
}.not_to raise_error
expect {
CaseLog.create!(
described_class.create!(
first_time_property_let_as_social_housing: "Yes",
unitletas: "Social rent basis",
owning_organisation: owning_organisation,
@ -225,7 +235,7 @@ RSpec.describe Form, type: :model do
)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
first_time_property_let_as_social_housing: "Yes",
unitletas: "Affordable rent basis",
owning_organisation: owning_organisation,
@ -233,7 +243,7 @@ RSpec.describe Form, type: :model do
)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
first_time_property_let_as_social_housing: "Yes",
unitletas: "Intermediate rent basis",
owning_organisation: owning_organisation,
@ -241,7 +251,7 @@ RSpec.describe Form, type: :model do
)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
first_time_property_let_as_social_housing: "Yes",
unitletas: "Don’t know",
owning_organisation: owning_organisation,
@ -252,7 +262,7 @@ RSpec.describe Form, type: :model do
it "must have a first let reason for vacancy if it's being let as social housing for the first time" do
expect {
CaseLog.create!(
described_class.create!(
first_time_property_let_as_social_housing: "Yes",
rsnvac: "First let of new-build property",
owning_organisation: owning_organisation,
@ -260,7 +270,7 @@ RSpec.describe Form, type: :model do
)
}.not_to raise_error
expect {
CaseLog.create!(
described_class.create!(
first_time_property_let_as_social_housing: "Yes",
rsnvac: "First let of conversion, rehabilitation or acquired property",
owning_organisation: owning_organisation,
@ -268,7 +278,7 @@ RSpec.describe Form, type: :model do
)
}.not_to raise_error
expect {
CaseLog.create!(
described_class.create!(
first_time_property_let_as_social_housing: "Yes",
rsnvac: "First let of leased property",
owning_organisation: owning_organisation,
@ -276,7 +286,7 @@ RSpec.describe Form, type: :model do
)
}.not_to raise_error
expect {
CaseLog.create!(
described_class.create!(
first_time_property_let_as_social_housing: "Yes",
rsnvac: "Tenant moved to care home",
owning_organisation: owning_organisation,
@ -289,7 +299,7 @@ RSpec.describe Form, type: :model do
context "Shared accomodation bedrooms validation" do
it "you must have more than zero bedrooms" do
expect {
CaseLog.create!(unittype_gn: "Shared house",
described_class.create!(unittype_gn: "Shared house",
beds: 0,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -298,7 +308,7 @@ RSpec.describe Form, type: :model do
it "you must answer less than 8 bedrooms" do
expect {
CaseLog.create!(unittype_gn: "Shared bungalow",
described_class.create!(unittype_gn: "Shared bungalow",
beds: 8,
other_hhmemb: 1,
owning_organisation: owning_organisation,
@ -308,7 +318,7 @@ RSpec.describe Form, type: :model do
it "you must answer less than 8 bedrooms" do
expect {
CaseLog.create!(unittype_gn: "Shared bungalow",
described_class.create!(unittype_gn: "Shared bungalow",
beds: 4,
other_hhmemb: 0,
owning_organisation: owning_organisation,
@ -318,7 +328,7 @@ RSpec.describe Form, type: :model do
it "A bedsit must only have one room" do
expect {
CaseLog.create!(unittype_gn: "Bedsit",
described_class.create!(unittype_gn: "Bedsit",
beds: 2,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -327,7 +337,7 @@ RSpec.describe Form, type: :model do
it "A bedsit must only have one room" do
expect {
CaseLog.create!(unittype_gn: "Bedsit",
described_class.create!(unittype_gn: "Bedsit",
beds: 0,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -338,7 +348,7 @@ RSpec.describe Form, type: :model do
context "outstanding rent or charges validation" do
it "must be not be anwered if answered no to outstanding rent or charges" do
expect {
CaseLog.create!(hbrentshortfall: "No",
described_class.create!(hbrentshortfall: "No",
tshortfall: 99,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -349,7 +359,7 @@ RSpec.describe Form, type: :model do
context "tenant’s income is from Universal Credit, state pensions or benefits" do
it "Cannot be All if person 1 works full time" do
expect {
CaseLog.create!(
described_class.create!(
benefits: "All",
ecstat1: "Full-time - 30 hours or more",
owning_organisation: owning_organisation,
@ -360,7 +370,7 @@ RSpec.describe Form, type: :model do
it "Cannot be All if person 1 works part time" do
expect {
CaseLog.create!(
described_class.create!(
benefits: "All",
ecstat1: "Part-time - Less than 30 hours",
owning_organisation: owning_organisation,
@ -371,7 +381,7 @@ RSpec.describe Form, type: :model do
it "Cannot be 1 All if any of persons 2-4 are person 1's partner and work part or full time" do
expect {
CaseLog.create!(
described_class.create!(
benefits: "All",
relat2: "Partner",
ecstat2: "Part-time - Less than 30 hours",
@ -385,7 +395,7 @@ RSpec.describe Form, type: :model do
context "fixed term tenancy length" do
it "Must not be completed if Type of main tenancy is not responded with either Secure or Assured shorthold " do
expect {
CaseLog.create!(tenancy: "Other",
described_class.create!(tenancy: "Other",
tenancylength: 10,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -394,21 +404,21 @@ RSpec.describe Form, type: :model do
it "Must be completed and between 2 and 99 if type of tenancy is Assured shorthold" do
expect {
CaseLog.create!(tenancy: "Assured Shorthold",
described_class.create!(tenancy: "Assured Shorthold",
tenancylength: 1,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(tenancy: "Assured Shorthold",
described_class.create!(tenancy: "Assured Shorthold",
tenancylength: nil,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(tenancy: "Assured Shorthold",
described_class.create!(tenancy: "Assured Shorthold",
tenancylength: 2,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -417,28 +427,28 @@ RSpec.describe Form, type: :model do
it "Must be empty or between 2 and 99 if type of tenancy is Secure" do
expect {
CaseLog.create!(tenancy: "Secure (including flexible)",
described_class.create!(tenancy: "Secure (including flexible)",
tenancylength: 1,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(tenancy: "Secure (including flexible)",
described_class.create!(tenancy: "Secure (including flexible)",
tenancylength: 100,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(tenancy: "Secure (including flexible)",
described_class.create!(tenancy: "Secure (including flexible)",
tenancylength: nil,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.not_to raise_error
expect {
CaseLog.create!(tenancy: "Secure (including flexible)",
described_class.create!(tenancy: "Secure (including flexible)",
tenancylength: 2,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -449,7 +459,7 @@ RSpec.describe Form, type: :model do
context "armed forces active validation" do
it "must not be answered if not ever served as a regular" do
expect {
CaseLog.create!(armedforces: "No",
described_class.create!(armedforces: "No",
leftreg: "Yes",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -459,7 +469,7 @@ RSpec.describe Form, type: :model do
# Crossover over tests here as injured must be answered as well for no error
it "must be answered if ever served in the forces as a regular" do
expect do
CaseLog.create!(armedforces: "A current or former regular in the UK Armed Forces (excluding National Service)",
described_class.create!(armedforces: "A current or former regular in the UK Armed Forces (excluding National Service)",
leftreg: "Yes",
reservist: "Yes",
owning_organisation: owning_organisation,
@ -471,7 +481,7 @@ RSpec.describe Form, type: :model do
context "household_member_validations" do
it "validate that persons aged under 16 must have relationship Child" do
expect {
CaseLog.create!(
described_class.create!(
age2: 14,
relat2: "Partner",
owning_organisation: owning_organisation,
@ -482,7 +492,7 @@ RSpec.describe Form, type: :model do
it "validate that persons aged over 70 must be retired" do
expect {
CaseLog.create!(
described_class.create!(
age2: 71,
ecstat2: "Full-time - 30 hours or more",
owning_organisation: owning_organisation,
@ -493,7 +503,7 @@ RSpec.describe Form, type: :model do
it "validate that a male, retired persons must be over 65" do
expect {
CaseLog.create!(
described_class.create!(
age2: 64,
sex2: "Male",
ecstat2: "Retired",
@ -505,7 +515,7 @@ RSpec.describe Form, type: :model do
it "validate that a female, retired persons must be over 60" do
expect {
CaseLog.create!(
described_class.create!(
age2: 59,
sex2: "Female",
ecstat2: "Retired",
@ -517,7 +527,7 @@ RSpec.describe Form, type: :model do
it "validate that persons aged under 16 must be a child (economically speaking)" do
expect {
CaseLog.create!(
described_class.create!(
age2: 15,
ecstat2: "Full-time - 30 hours or more",
owning_organisation: owning_organisation,
@ -528,7 +538,7 @@ RSpec.describe Form, type: :model do
it "validate that persons aged between 16 and 19 that are a child must be a full time student or economic status refused" do
expect {
CaseLog.create!(
described_class.create!(
age2: 17,
relat2: "Child - includes young adult and grown-up",
ecstat2: "Full-time - 30 hours or more",
@ -540,7 +550,7 @@ RSpec.describe Form, type: :model do
it "validate that persons aged under 16 must be a child relationship" do
expect {
CaseLog.create!(
described_class.create!(
age2: 15,
relat2: "Partner",
owning_organisation: owning_organisation,
@ -551,7 +561,7 @@ RSpec.describe Form, type: :model do
it "validate that no more than 1 partner relationship exists" do
expect {
CaseLog.create!(
described_class.create!(
relat2: "Partner",
relat3: "Partner",
owning_organisation: owning_organisation,
@ -564,14 +574,14 @@ RSpec.describe Form, type: :model do
context "other tenancy type validation" do
it "must be provided if tenancy type was given as other" do
expect {
CaseLog.create!(tenancy: "Other",
described_class.create!(tenancy: "Other",
tenancyother: nil,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(tenancy: "Other",
described_class.create!(tenancy: "Other",
tenancyother: "type",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -580,14 +590,14 @@ RSpec.describe Form, type: :model do
it "must not be provided if tenancy type is not other" do
expect {
CaseLog.create!(tenancy: "Secure (including flexible)",
described_class.create!(tenancy: "Secure (including flexible)",
tenancyother: "the other reason provided",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(tenancy: "Secure (including flexible)",
described_class.create!(tenancy: "Secure (including flexible)",
tenancyother: nil,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -598,7 +608,7 @@ RSpec.describe Form, type: :model do
context "income ranges" do
it "validates net income maximum" do
expect {
CaseLog.create!(
described_class.create!(
ecstat1: "Full-time - 30 hours or more",
earnings: 5000,
incfreq: "Weekly",
@ -610,7 +620,7 @@ RSpec.describe Form, type: :model do
it "validates net income minimum" do
expect {
CaseLog.create!(
described_class.create!(
ecstat1: "Full-time - 30 hours or more",
earnings: 1,
incfreq: "Weekly",
@ -654,7 +664,7 @@ RSpec.describe Form, type: :model do
context "major repairs date" do
it "cannot be later than the tenancy start date" do
expect {
CaseLog.create!(
described_class.create!(
mrcdate: Date.new(2021, 10, 10),
startdate: Date.new(2021, 10, 9),
owning_organisation: owning_organisation,
@ -663,7 +673,7 @@ RSpec.describe Form, type: :model do
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
mrcdate: Date.new(2021, 10, 9),
startdate: Date.new(2021, 10, 10),
owning_organisation: owning_organisation,
@ -674,7 +684,7 @@ RSpec.describe Form, type: :model do
it "must not be completed if reason for vacancy is first let" do
expect {
CaseLog.create!(
described_class.create!(
mrcdate: Date.new(2020, 10, 10),
rsnvac: "First let of new-build property",
owning_organisation: owning_organisation,
@ -683,7 +693,7 @@ RSpec.describe Form, type: :model do
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
mrcdate: Date.new(2020, 10, 10),
rsnvac: "First let of conversion, rehabilitation or acquired property",
owning_organisation: owning_organisation,
@ -692,7 +702,7 @@ RSpec.describe Form, type: :model do
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
mrcdate: Date.new(2020, 10, 10),
rsnvac: "First let of leased property",
owning_organisation: owning_organisation,
@ -703,7 +713,7 @@ RSpec.describe Form, type: :model do
it "must have less than two years between the tenancy start date and major repairs date" do
expect {
CaseLog.create!(
described_class.create!(
startdate: Date.new(2021, 10, 10),
mrcdate: Date.new(2017, 10, 10),
owning_organisation: owning_organisation,
@ -716,7 +726,7 @@ RSpec.describe Form, type: :model do
context "void date" do
it "must have less than 10 years between the tenancy start date and void" do
expect {
CaseLog.create!(
described_class.create!(
startdate: Date.new(2021, 10, 10),
property_void_date: Date.new(2009, 10, 10),
owning_organisation: owning_organisation,
@ -725,7 +735,7 @@ RSpec.describe Form, type: :model do
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
startdate: Date.new(2021, 10, 10),
property_void_date: Date.new(2015, 10, 10),
owning_organisation: owning_organisation,
@ -736,7 +746,7 @@ RSpec.describe Form, type: :model do
it "must be before the tenancy start date" do
expect {
CaseLog.create!(
described_class.create!(
startdate: Date.new(2021, 10, 10),
property_void_date: Date.new(2021, 10, 11),
owning_organisation: owning_organisation,
@ -745,7 +755,7 @@ RSpec.describe Form, type: :model do
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(
described_class.create!(
startdate: Date.new(2021, 10, 10),
property_void_date: Date.new(2019, 10, 10),
owning_organisation: owning_organisation,
@ -756,7 +766,7 @@ RSpec.describe Form, type: :model do
it "must be before major repairs date if major repairs date provided" do
expect {
CaseLog.create!(
described_class.create!(
startdate: Date.new(2021, 10, 10),
mrcdate: Date.new(2019, 10, 10),
property_void_date: Date.new(2019, 11, 11),
@ -770,7 +780,7 @@ RSpec.describe Form, type: :model do
context "Validate pregnancy questions" do
it "Cannot answer yes if no female tenants" do
expect {
CaseLog.create!(preg_occ: "Yes",
described_class.create!(preg_occ: "Yes",
sex1: "Male",
age1: 20,
owning_organisation: owning_organisation,
@ -780,7 +790,7 @@ RSpec.describe Form, type: :model do
it "Cannot answer yes if no female tenants within age range" do
expect {
CaseLog.create!(preg_occ: "Yes",
described_class.create!(preg_occ: "Yes",
sex1: "Female",
age1: 51,
owning_organisation: owning_organisation,
@ -790,7 +800,7 @@ RSpec.describe Form, type: :model do
it "Cannot answer prefer not to say if no valid tenants" do
expect {
CaseLog.create!(preg_occ: "Prefer not to say",
described_class.create!(preg_occ: "Prefer not to say",
sex1: "Male",
age1: 20,
owning_organisation: owning_organisation,
@ -800,7 +810,7 @@ RSpec.describe Form, type: :model do
it "Can answer yes if valid tenants" do
expect {
CaseLog.create!(preg_occ: "Yes",
described_class.create!(preg_occ: "Yes",
sex1: "Female",
age1: 20,
owning_organisation: owning_organisation,
@ -810,7 +820,7 @@ RSpec.describe Form, type: :model do
it "Can answer yes if valid second tenant" do
expect {
CaseLog.create!(preg_occ: "Yes",
described_class.create!(preg_occ: "Yes",
sex1: "Male", age1: 99,
sex2: "Female",
age2: 20,
@ -823,14 +833,14 @@ RSpec.describe Form, type: :model do
context "Validate type of unit" do
it "Cannot be bedsit if no of bedrooms is greater than 1" do
expect {
CaseLog.create!(unittype_gn: "Bedsit",
described_class.create!(unittype_gn: "Bedsit",
beds: 2,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(unittype_gn: "Bedsit",
described_class.create!(unittype_gn: "Bedsit",
beds: 1,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -841,14 +851,14 @@ RSpec.describe Form, type: :model do
context "Validate local authority" do
it "Has to be london if rent type london affordable rent" do
expect {
CaseLog.create!(la: "Ashford",
described_class.create!(la: "Ashford",
rent_type: "London Affordable rent",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(la: "Westminster",
described_class.create!(la: "Westminster",
rent_type: "London Affordable rent",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -859,7 +869,7 @@ RSpec.describe Form, type: :model do
context "For accessibility requirements" do
it "validates that only one option can be selected" do
expect {
CaseLog.create!(housingneeds_a: "Yes",
described_class.create!(housingneeds_a: "Yes",
housingneeds_b: "Yes",
rent_type: "London Affordable rent",
owning_organisation: owning_organisation,
@ -869,7 +879,7 @@ RSpec.describe Form, type: :model do
it "validates that only one option a, b, or c can be selected in conjunction with f" do
expect {
CaseLog.create!(housingneeds_a: "Yes",
described_class.create!(housingneeds_a: "Yes",
housingneeds_f: "Yes",
rent_type: "London Affordable rent",
owning_organisation: owning_organisation,
@ -877,7 +887,7 @@ RSpec.describe Form, type: :model do
}.not_to raise_error
expect {
CaseLog.create!(housingneeds_b: "Yes",
described_class.create!(housingneeds_b: "Yes",
housingneeds_f: "Yes",
rent_type: "London Affordable rent",
owning_organisation: owning_organisation,
@ -885,7 +895,7 @@ RSpec.describe Form, type: :model do
}.not_to raise_error
expect {
CaseLog.create!(housingneeds_c: "Yes",
described_class.create!(housingneeds_c: "Yes",
housingneeds_f: "Yes",
rent_type: "London Affordable rent",
owning_organisation: owning_organisation,
@ -893,7 +903,7 @@ RSpec.describe Form, type: :model do
}.not_to raise_error
expect {
CaseLog.create!(housingneeds_g: "Yes",
described_class.create!(housingneeds_g: "Yes",
housingneeds_f: "Yes",
rent_type: "London Affordable rent",
owning_organisation: owning_organisation,
@ -901,7 +911,7 @@ RSpec.describe Form, type: :model do
}.to raise_error(ActiveRecord::RecordInvalid)
expect {
CaseLog.create!(housingneeds_a: "Yes",
described_class.create!(housingneeds_a: "Yes",
housingneeds_b: "Yes",
housingneeds_f: "Yes",
rent_type: "London Affordable rent",
@ -914,7 +924,7 @@ RSpec.describe Form, type: :model do
context "Validate reason for vacancy" do
def check_rsnvac_validation(prevten)
expect {
CaseLog.create!(rsnvac: "Relet to tenant who occupied same property as temporary accommodation",
described_class.create!(rsnvac: "Relet to tenant who occupied same property as temporary accommodation",
prevten: prevten,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -923,7 +933,7 @@ RSpec.describe Form, type: :model do
def check_rsnvac_referral_validation(referral)
expect {
CaseLog.create!(rsnvac: "Relet to tenant who occupied same property as temporary accommodation",
described_class.create!(rsnvac: "Relet to tenant who occupied same property as temporary accommodation",
referral: referral,
owning_organisation: owning_organisation,
managing_organisation: managing_organisation)
@ -997,7 +1007,7 @@ RSpec.describe Form, type: :model do
require "date"
let(:organisation) { FactoryBot.create(:organisation, "Org type": "PRP") }
let!(:case_log) do
CaseLog.create({
described_class.create({
managing_organisation: organisation,
owning_organisation: organisation,
property_postcode: "M1 1AE",
@ -1074,7 +1084,7 @@ RSpec.describe Form, type: :model do
end
let!(:address_case_log) do
CaseLog.create({
described_class.create({
managing_organisation: organisation,
owning_organisation: organisation,
postcode_known: "Yes",
@ -1138,7 +1148,7 @@ RSpec.describe Form, type: :model do
context "rent and charges" do
let!(:case_log) do
CaseLog.create({
described_class.create({
managing_organisation: organisation,
owning_organisation: organisation,
brent: 5.77,
@ -1156,7 +1166,7 @@ RSpec.describe Form, type: :model do
context "household members derived vars" do
let!(:household_case_log) do
CaseLog.create({
described_class.create({
managing_organisation: organisation,
owning_organisation: organisation,
other_hhmemb: 4,

38
spec/models/validations/property_validations_spec.rb

@ -1,59 +1,39 @@
require "rails_helper"
require_relative "../../request_helper"
RSpec.describe CaseLog do
let(:owning_organisation) { FactoryBot.create(:organisation) }
let(:managing_organisation) { owning_organisation }
before do
RequestHelper.stub_http_requests
end
describe "#new" do
it "raises an error when offered is present and invalid" do
expect {
described_class.create!(
offered: "random",
owning_organisation: owning_organisation,
managing_organisation: managing_organisation,
)
}.to raise_error(ActiveRecord::RecordInvalid)
end
end
end
RSpec.describe Validations::PropertyValidations do
let(:subject) { subject_class.new }
let(:subject_class) { Class.new { include Validations::PropertyValidations } }
subject(:property_validator) { property_validator_class.new }
let(:property_validator_class) { Class.new { include Validations::PropertyValidations } }
let(:record) { FactoryBot.create(:case_log) }
let(:expected_error) { I18n.t("validations.property.offered.relet_number") }
describe "#validate_property_number_of_times_relet" do
it "does not add an error if the record offered is missing" do
record.offered = nil
subject.validate_property_number_of_times_relet(record)
property_validator.validate_property_number_of_times_relet(record)
expect(record.errors).to be_empty
end
it "does not add an error if offered is valid (number between 0 and 20)" do
record.offered = 0
subject.validate_property_number_of_times_relet(record)
property_validator.validate_property_number_of_times_relet(record)
expect(record.errors).to be_empty
record.offered = 10
subject.validate_property_number_of_times_relet(record)
property_validator.validate_property_number_of_times_relet(record)
expect(record.errors).to be_empty
record.offered = 20
subject.validate_property_number_of_times_relet(record)
property_validator.validate_property_number_of_times_relet(record)
expect(record.errors).to be_empty
end
it "does add an error when offered is invalid" do
record.offered = "invalid"
subject.validate_property_number_of_times_relet(record)
property_validator.validate_property_number_of_times_relet(record)
expect(record.errors).not_to be_empty
expect(record.errors["offered"]).to include(match(expected_error))
record.offered = 21
subject.validate_property_number_of_times_relet(record)
property_validator.validate_property_number_of_times_relet(record)
expect(record.errors).not_to be_empty
expect(record.errors["offered"]).to include(match(expected_error))
end

4
spec/presenters/error_summary_full_messages_presenter_spec.rb

@ -1,12 +1,12 @@
require "rails_helper"
RSpec.describe ErrorSummaryFullMessagesPresenter do
subject { described_class.new(error_messages) }
subject(:error_summary_presenter) { described_class.new(error_messages) }
let(:error_messages) { { reset_password_token: %w[expired] } }
let(:formatted_error_messages) { [[:reset_password_token, "Reset password token expired"]] }
it "formats messages to include the attribute name" do
expect(subject.formatted_error_messages).to eq(formatted_error_messages)
expect(error_summary_presenter.formatted_error_messages).to eq(formatted_error_messages)
end
end

2
spec/requests/auth/passwords_controller_spec.rb

@ -4,7 +4,7 @@ require_relative "../../support/devise"
RSpec.describe Auth::PasswordsController, type: :request do
let(:params) { { user: { email: email } } }
let(:page) { Capybara::Node::Simple.new(response.body) }
let(:notify_client) { double(Notifications::Client) }
let(:notify_client) { instance_double(Notifications::Client) }
before do
allow_any_instance_of(DeviseNotifyMailer).to receive(:notify_client).and_return(notify_client)

Loading…
Cancel
Save