From 05b32b3e7a58f6610f23a62795e54633cffe4a26 Mon Sep 17 00:00:00 2001 From: Kat Date: Mon, 25 Apr 2022 14:36:38 +0100 Subject: [PATCH] Add la_known to dynamically not required questions if postcode_known is yes or not filled in --- app/models/case_log.rb | 5 ++++- app/models/form.rb | 4 ++-- spec/features/form/check_answers_page_spec.rb | 6 ------ spec/models/form_spec.rb | 4 ++-- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 9bbba8c46..f03bcc570 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -418,7 +418,10 @@ private end def dynamically_not_required - (form.invalidated_questions(self) + form.readonly_questions).map(&:id).uniq + la_known_questions = [] + la_known_questions << "la_known" if postcode_known != 0 + la_known_questions << "previous_la_known" if previous_postcode_known != 0 + ((form.invalidated_questions(self) + form.readonly_questions).map(&:id) + la_known_questions).uniq end def set_derived_fields! diff --git a/app/models/form.rb b/app/models/form.rb index 1a47ab287..df39a8e1d 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -58,7 +58,7 @@ class Form def next_incomplete_section_redirect_path(subsection, case_log) subsection_ids = subsections.map(&:id) - if case_log.status == "completed" || all_subsections_except_declaration_completed?(case_log) + if case_log.status == "completed" return first_question_in_last_subsection(subsection_ids) end @@ -119,7 +119,7 @@ class Form 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 postcode_full ppostcode_full] + address_questions = %w[postcode_known la_known la previous_postcode_known previous_la_known prevloc postcode_full ppostcode_full] invalidated_pages(case_log).flat_map(&:questions).reject { |q| address_questions.include?(q.id) } || [] end diff --git a/spec/features/form/check_answers_page_spec.rb b/spec/features/form/check_answers_page_spec.rb index 523e43038..44347fa61 100644 --- a/spec/features/form/check_answers_page_spec.rb +++ b/spec/features/form/check_answers_page_spec.rb @@ -228,12 +228,6 @@ RSpec.describe "Form Check Answers Page" do click_link("Save and go to next incomplete section") expect(page).to have_current_path("/logs/#{cycle_sections_case_log.id}/tenant-code") end - - it "they can click a button to move to the submission section when all sections have been completed", js: true do - visit("/logs/#{completed_case_log.id}/local-authority/check-answers") - click_link("Save and go to submit") - expect(page).to have_current_path("/logs/#{completed_case_log.id}/declaration") - end end end end diff --git a/spec/models/form_spec.rb b/spec/models/form_spec.rb index 9bc9369db..6f906e439 100644 --- a/spec/models/form_spec.rb +++ b/spec/models/form_spec.rb @@ -175,7 +175,7 @@ RSpec.describe Form, type: :model do describe "invalidated_page_questions" do context "when dependencies are not met" do - let(:expected_invalid) { %w[la_known cbl conditional_question_no_second_question net_income_value_check dependent_question offered layear declaration] } + let(:expected_invalid) { %w[cbl conditional_question_no_second_question net_income_value_check dependent_question offered layear declaration] } it "returns an array of question keys whose pages conditions are not met" do expect(form.invalidated_page_questions(case_log).map(&:id).uniq).to eq(expected_invalid) @@ -183,7 +183,7 @@ RSpec.describe Form, type: :model do end context "with two pages having the same question and only one has dependencies met" do - let(:expected_invalid) { %w[la_known cbl conditional_question_no_second_question net_income_value_check dependent_question offered layear declaration] } + let(:expected_invalid) { %w[cbl conditional_question_no_second_question net_income_value_check dependent_question offered layear declaration] } it "returns an array of question keys whose pages conditions are not met" do case_log["preg_occ"] = "No"