Browse Source

Armed forces

pull/303/head
baarkerlounger 3 years ago
parent
commit
d489c9b754
  1. 5
      app/models/validations/household_validations.rb
  2. 26
      spec/models/case_log_spec.rb
  3. 36
      spec/models/validations/household_validations_spec.rb

5
app/models/validations/household_validations.rb

@ -23,13 +23,10 @@ module Validations::HouseholdValidations
validate_other_field(record, :reason, :other_reason_for_leaving_last_settled_home) validate_other_field(record, :reason, :other_reason_for_leaving_last_settled_home)
end end
def validate_armed_forces_injured(record) def validate_armed_forces(record)
if (record.armedforces == "No" || record.armedforces == "Tenant prefers not to say") && record.reservist.present? if (record.armedforces == "No" || record.armedforces == "Tenant prefers not to say") && record.reservist.present?
record.errors.add :reservist, I18n.t("validations.household.reservist.injury_not_required") record.errors.add :reservist, I18n.t("validations.household.reservist.injury_not_required")
end end
end
def validate_armed_forces_active_response(record)
if record.armedforces != "A current or former regular in the UK Armed Forces (excluding National Service)" && record.leftreg.present? if record.armedforces != "A current or former regular in the UK Armed Forces (excluding National Service)" && record.leftreg.present?
record.errors.add :leftreg, I18n.t("validations.household.leftreg.question_not_required") record.errors.add :leftreg, I18n.t("validations.household.leftreg.question_not_required")
end end

26
spec/models/case_log_spec.rb

@ -171,28 +171,6 @@ RSpec.describe CaseLog do
end end
end end
context "when validating armed forces is active" do
it "must not be answered if not ever served as a regular" do
expect {
described_class.create!(armedforces: "No",
leftreg: "Yes",
owning_organisation:,
managing_organisation:)
}.to raise_error(ActiveRecord::RecordInvalid)
end
# 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 {
described_class.create!(armedforces: "A current or former regular in the UK Armed Forces (excluding National Service)",
leftreg: "Yes",
reservist: "Yes",
owning_organisation:,
managing_organisation:)
}.not_to raise_error
end
end
context "when validating household members" do context "when validating household members" do
it "validate that persons aged under 16 must have relationship Child" do it "validate that persons aged under 16 must have relationship Child" do
expect { expect {
@ -648,6 +626,10 @@ RSpec.describe CaseLog do
it "validates reason for leaving last settled home" do it "validates reason for leaving last settled home" do
expect(validator).to receive(:validate_reason_for_leaving_last_settled_home) expect(validator).to receive(:validate_reason_for_leaving_last_settled_home)
end end
it "validates armed forces" do
expect(validator).to receive(:validate_armed_forces)
end
end end
describe "status" do describe "status" do

36
spec/models/validations/household_validations_spec.rb

@ -236,7 +236,7 @@ RSpec.describe Validations::HouseholdValidations do
it "validates that injured in the armed forces is not yes" do it "validates that injured in the armed forces is not yes" do
record.armedforces = "No" record.armedforces = "No"
record.reservist = "Yes" record.reservist = "Yes"
household_validator.validate_armed_forces_injured(record) household_validator.validate_armed_forces(record)
expect(record.errors["reservist"]) expect(record.errors["reservist"])
.to include(match I18n.t("validations.household.reservist.injury_not_required")) .to include(match I18n.t("validations.household.reservist.injury_not_required"))
end end
@ -246,7 +246,7 @@ RSpec.describe Validations::HouseholdValidations do
it "validates that injured in the armed forces is not yes" do it "validates that injured in the armed forces is not yes" do
record.armedforces = "Tenant prefers not to say" record.armedforces = "Tenant prefers not to say"
record.reservist = "Yes" record.reservist = "Yes"
household_validator.validate_armed_forces_injured(record) household_validator.validate_armed_forces(record)
expect(record.errors["reservist"]) expect(record.errors["reservist"])
.to include(match I18n.t("validations.household.reservist.injury_not_required")) .to include(match I18n.t("validations.household.reservist.injury_not_required"))
end end
@ -256,7 +256,7 @@ RSpec.describe Validations::HouseholdValidations do
it "expects that injured in the armed forces can be yes" do it "expects that injured in the armed forces can be yes" do
record.armedforces = "A current or former regular in the UK Armed Forces (excluding National Service)" record.armedforces = "A current or former regular in the UK Armed Forces (excluding National Service)"
record.reservist = "Yes" record.reservist = "Yes"
household_validator.validate_armed_forces_injured(record) household_validator.validate_armed_forces(record)
expect(record.errors["reservist"]).to be_empty expect(record.errors["reservist"]).to be_empty
end end
end end
@ -265,7 +265,7 @@ RSpec.describe Validations::HouseholdValidations do
it "expects that injured in the armed forces can be yes" do it "expects that injured in the armed forces can be yes" do
record.armedforces = "A current or former reserve in the UK Armed Forces (excluding National Service)" record.armedforces = "A current or former reserve in the UK Armed Forces (excluding National Service)"
record.reservist = "Yes" record.reservist = "Yes"
household_validator.validate_armed_forces_injured(record) household_validator.validate_armed_forces(record)
expect(record.errors["reservist"]).to be_empty expect(record.errors["reservist"]).to be_empty
end end
end end
@ -274,7 +274,33 @@ RSpec.describe Validations::HouseholdValidations do
it "expects that injured in the armed forces can be yes" do it "expects that injured in the armed forces can be yes" do
record.armedforces = "A spouse / civil partner of a UK Armed Forces member who has separated or been bereaved within the last 2 years" record.armedforces = "A spouse / civil partner of a UK Armed Forces member who has separated or been bereaved within the last 2 years"
record.reservist = "Yes" record.reservist = "Yes"
household_validator.validate_armed_forces_injured(record) household_validator.validate_armed_forces(record)
expect(record.errors["reservist"]).to be_empty
end
end
context "when the tenant or partner has left the armed forces" do
it "validates that they served in the armed forces" do
record.armedforces = "No"
record.leftreg = "Yes"
household_validator.validate_armed_forces(record)
expect(record.errors["leftreg"])
.to include(match I18n.t("validations.household.leftreg.question_not_required"))
end
it "expects that they served in the armed forces" do
record.armedforces = "A current or former regular in the UK Armed Forces (excluding National Service)"
record.leftreg = "Yes"
household_validator.validate_armed_forces(record)
expect(record.errors["leftreg"]).to be_empty
end
it "expects that they served in the armed forces and may have been injured" do
record.armedforces = "A current or former regular in the UK Armed Forces (excluding National Service)"
record.leftreg = "Yes"
record.reservist = "Yes"
household_validator.validate_armed_forces(record)
expect(record.errors["leftreg"]).to be_empty
expect(record.errors["reservist"]).to be_empty expect(record.errors["reservist"]).to be_empty
end end
end end

Loading…
Cancel
Save