Browse Source

Fix inferring postcode (it works 🤷‍♀️)

pull/308/head
Kat 3 years ago
parent
commit
944915256d
  1. 4
      app/models/form.rb
  2. 2
      spec/features/form/accessible_autocomplete_spec.rb
  3. 2
      spec/features/form/check_answers_page_spec.rb
  4. 8
      spec/fixtures/forms/2021_2022.json
  5. 2
      spec/models/form/subsection_spec.rb
  6. 2
      spec/requests/case_logs_controller_spec.rb

4
app/models/form.rb

@ -114,9 +114,11 @@ class Form
end
def invalidated_page_questions(case_log)
#we're already treating address fields as a special case and reset their values upon saving a case_log
address_questions = %w[postcode_known la previous_postcode_known prevloc property_postcode previous_postcode]
pages_that_are_routed_to = pages.select { |p| p.routed_to?(case_log) }
enabled_question_ids = pages_that_are_routed_to.flat_map(&:questions).map(&:id) || []
invalidated_pages(case_log).flat_map(&:questions).reject { |q| enabled_question_ids.include?(q.id) } || []
invalidated_pages(case_log).flat_map(&:questions).reject { |q| enabled_question_ids.include?(q.id) || address_questions.include?(q.id) } || []
end
def invalidated_conditional_questions(case_log)

2
spec/features/form/accessible_autocomplete_spec.rb

@ -8,6 +8,8 @@ RSpec.describe "Accessible Automcomplete" do
FactoryBot.create(
:case_log,
:in_progress,
la_known: "Yes",
is_la_inferred: false,
owning_organisation: user.organisation,
managing_organisation: user.organisation,
)

2
spec/features/form/check_answers_page_spec.rb

@ -17,6 +17,8 @@ RSpec.describe "Form Check Answers Page" do
let(:empty_case_log) do
FactoryBot.create(
:case_log,
la_known: "Yes",
is_la_inferred: false,
owning_organisation: user.organisation,
managing_organisation: user.organisation,
)

8
spec/fixtures/forms/2021_2022.json vendored

@ -251,7 +251,13 @@
"E06000014": "York"
}
}
}
},
"depends_on": [
{
"la_known": "Yes",
"is_la_inferred": false
}
]
},
"condition_effects": {
"questions": {

2
spec/models/form/subsection_spec.rb

@ -70,6 +70,8 @@ RSpec.describe Form::Subsection, type: :model do
case_log.armedforces = "No"
case_log.illness = "No"
case_log.housingneeds_a = "Yes"
case_log.la_known = "Yes"
case_log.is_la_inferred = false
case_log.la = "York"
case_log.illness_type_1 = "Yes"
expect(sub_section.answered_questions(case_log).map(&:id)).to eq(expected_questions)

2
spec/requests/case_logs_controller_spec.rb

@ -278,6 +278,8 @@ RSpec.describe CaseLogsController, type: :request do
case_log = FactoryBot.create(:case_log,
owning_organisation: organisation,
managing_organisation: organisation,
la_known: "Yes",
is_la_inferred: true,
postcode_known: "Yes",
property_postcode: "PO5 3TE")
id = case_log.id

Loading…
Cancel
Save