From a2a9aa4e6a6ca43254d95c92ad005af09f09209b Mon Sep 17 00:00:00 2001 From: J G <7750475+moarpheus@users.noreply.github.com> Date: Tue, 26 Jul 2022 12:12:40 +0100 Subject: [PATCH] CLDC-1372 Show inferred location when checking log answers (#780) * spiked extra values for location la * test * extra test * extra spacing * renamed argument * refactored per Dans suggestions * redundant tests * redundant method * redundant method * redundant method - part 3 * redundant method - part 4 --- app/models/form/question.rb | 12 ++++++++---- app/models/form/setup/questions/location_id.rb | 4 ++++ app/views/form/_check_answers_summary_list.html.erb | 7 ++++++- db/seeds.rb | 3 +++ spec/features/form/check_answers_page_spec.rb | 7 +++++++ 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/app/models/form/question.rb b/app/models/form/question.rb index 41a79fd3a..eb437b456 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -51,16 +51,20 @@ class Form::Question def get_inferred_answers(case_log) return [] unless inferred_answers - enabled_inferred_answers(inferred_answers, case_log).keys.map do |x| - question = form.get_question(x, case_log) + enabled_inferred_answers(inferred_answers, case_log).keys.map do |question_id| + question = form.get_question(question_id, case_log) if question.present? - question.label_from_value(case_log[x]) + question.label_from_value(case_log[question_id]) else - Array(x.to_s.split(".")).inject(case_log) { |o, a| o.present? ? o.public_send(*a) : "" } + Array(question_id.to_s.split(".")).inject(case_log) { |log, method| log.present? ? log.public_send(*method) : "" } end end end + def get_extra_check_answer_value(_case_log) + nil + end + def read_only? !!readonly end diff --git a/app/models/form/setup/questions/location_id.rb b/app/models/form/setup/questions/location_id.rb index d5a0976f7..cc8e1daf6 100644 --- a/app/models/form/setup/questions/location_id.rb +++ b/app/models/form/setup/questions/location_id.rb @@ -34,6 +34,10 @@ class Form::Setup::Questions::LocationId < ::Form::Question !supported_housing_selected?(case_log) end + def get_extra_check_answer_value(case_log) + case_log.form.get_question("la", nil).label_from_value(case_log.la) + end + private def supported_housing_selected?(case_log) diff --git a/app/views/form/_check_answers_summary_list.html.erb b/app/views/form/_check_answers_summary_list.html.erb index 6b7761437..d04dfa031 100644 --- a/app/views/form/_check_answers_summary_list.html.erb +++ b/app/views/form/_check_answers_summary_list.html.erb @@ -3,7 +3,12 @@ <% summary_list.row do |row| %> <% row.key { question.check_answer_label.to_s.presence || question.header.to_s } %> <% row.value do %> - <%= get_answer_label(question, @case_log) %>
+ <%= get_answer_label(question, @case_log) %> + <% extra_value = question.get_extra_check_answer_value(@case_log) %> + <% if extra_value %> + <%= extra_value %> + <% end %> +
<% question.get_inferred_answers(@case_log).each do |inferred_answer| %> <%= inferred_answer %> <% end %> diff --git a/db/seeds.rb b/db/seeds.rb index 264b25d69..86f6d3395 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -28,6 +28,7 @@ unless Rails.env.test? if Rails.env.development? && User.count.zero? User.create!( + name: "Provider", email: "provider@example.com", password: "password", organisation: org, @@ -36,6 +37,7 @@ unless Rails.env.test? ) User.create!( + name: "Coordinator", email: "coordinator@example.com", password: "password", organisation: org, @@ -44,6 +46,7 @@ unless Rails.env.test? ) User.create!( + name: "Support", email: "support@example.com", password: "password", organisation: org, diff --git a/spec/features/form/check_answers_page_spec.rb b/spec/features/form/check_answers_page_spec.rb index f495e9897..4e4253470 100644 --- a/spec/features/form/check_answers_page_spec.rb +++ b/spec/features/form/check_answers_page_spec.rb @@ -144,6 +144,13 @@ RSpec.describe "Form Check Answers Page" do expect(page).to have_content("Location") expect(page).to have_content(location.name) end + + it "displays inferred postcode with the location_admin_district" do + case_log.update!(location:) + visit("/logs/#{id}/setup/check-answers") + expect(page).to have_content("Location") + expect(page).to have_content(location.location_admin_district) + end end context "when the user changes their answer from check answer page" do