From e735f9e652cac97afedc6d9fd5d5fa236d35a76e Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 8 Oct 2021 11:48:39 +0100 Subject: [PATCH] Save keys for checkboxes instead of labels --- app/controllers/case_logs_controller.rb | 4 ++-- app/views/form/_checkbox_question.html.erb | 2 +- config/forms/2021_2022.json | 14 +++++++------- spec/controllers/case_logs_controller_spec.rb | 19 ++++++++++--------- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/app/controllers/case_logs_controller.rb b/app/controllers/case_logs_controller.rb index c468b1494..7ed02300e 100644 --- a/app/controllers/case_logs_controller.rb +++ b/app/controllers/case_logs_controller.rb @@ -42,8 +42,8 @@ class CaseLogsController < ApplicationController checkbox_questions = questions_for_page.select { |_title, question| question["type"] == "checkbox" } checkbox_questions.each do |title, question| valid_answer_options = question["answer_options"].reject { |key, _value| key.match?(/divider/) } - valid_answer_options.each do |_key, value| - checked_questions["#{title}_#{value.parameterize(separator: '_')}"] = case_log_params[title].include?(value) ? true : false + valid_answer_options.each do |value, _label| + checked_questions[value] = case_log_params[title].include?(value) ? true : false end end checked_questions diff --git a/app/views/form/_checkbox_question.html.erb b/app/views/form/_checkbox_question.html.erb index 7d8d82b1b..b821ca475 100644 --- a/app/views/form/_checkbox_question.html.erb +++ b/app/views/form/_checkbox_question.html.erb @@ -6,7 +6,7 @@ <% if key.starts_with?("divider") %> <%= f.govuk_check_box_divider %> <% else %> - <%= f.govuk_check_box question_key, val, label: { text: val } %> + <%= f.govuk_check_box question_key, key, label: { text: val } %> <% end %> <% end %> <% end %> diff --git a/config/forms/2021_2022.json b/config/forms/2021_2022.json index a5b3072ce..28b85eced 100644 --- a/config/forms/2021_2022.json +++ b/config/forms/2021_2022.json @@ -381,15 +381,15 @@ "type": "checkbox", "check_answer_label": "Disability requirements", "answer_options": { - "0": "Fully wheelchair accessible housing", - "1": "Wheelchair access to essential rooms", - "2": "Level access housing", - "3": "Other disability requirements", - "4": "No disability requirements", + "accessibility_requirements_fully_wheelchair_accessible_housing": "Fully wheelchair accessible housing", + "accessibility_requirements_wheelchair_access_to_essential_rooms": "Wheelchair access to essential rooms", + "accessibility_requirements_level_access_housing": "Level access housing", + "accessibility_requirements_other_disability_requirements": "Other disability requirements", + "accessibility_requirements_no_disability_requirements": "No disability requirements", "divider_a": true, - "5": "Do not know", + "accessibility_requirements_do_not_know": "Do not know", "divider_b": true, - "6": "Prefer not to say" + "accessibility_requirements_prefer_not_to_say": "Prefer not to say" } } } diff --git a/spec/controllers/case_logs_controller_spec.rb b/spec/controllers/case_logs_controller_spec.rb index 38792d792..074b72aee 100644 --- a/spec/controllers/case_logs_controller_spec.rb +++ b/spec/controllers/case_logs_controller_spec.rb @@ -47,12 +47,16 @@ RSpec.describe CaseLogsController, type: :controller do describe "submit_form" do let!(:case_log) { FactoryBot.create(:case_log) } let(:id) { case_log.id } + let(:case_log_to_submit) do + { "accessibility_requirements" => + %w[ accessibility_requirements_fully_wheelchair_accessible_housing + accessibility_requirements_wheelchair_access_to_essential_rooms + accessibility_requirements_level_access_housing], + "previous_page" => "accessibility_requirements" } + end it "sets checked items to true" do - case_log_to_submit = { "accessibility_requirements" => - ["Fully wheelchair accessible housing", "Wheelchair access to essential rooms", "Level access housing"], - "previous_page" => "accessibility_requirements" } - post :submit_form, params: { id: id, case_log: case_log_to_submit } + get :submit_form, params: { id: id, case_log: case_log_to_submit } CaseLog.find(id) expect(CaseLog.find(id)["accessibility_requirements_fully_wheelchair_accessible_housing"]).to eq(true) @@ -61,17 +65,14 @@ RSpec.describe CaseLogsController, type: :controller do end it "sets previously submitted items to false when resubmitted with new values" do - case_log_to_submit = { "accessibility_requirements" => - ["Fully wheelchair accessible housing", "Wheelchair access to essential rooms", "Level access housing"], - "previous_page" => "accessibility_requirements" } post :submit_form, params: { id: id, case_log: case_log_to_submit } CaseLog.find(id) new_case_log_to_submit = { "accessibility_requirements" => - ["Level access housing"], + %w[accessibility_requirements_level_access_housing], "previous_page" => "accessibility_requirements" } - post :submit_form, params: { id: id, case_log: new_case_log_to_submit } + get :submit_form, params: { id: id, case_log: new_case_log_to_submit } CaseLog.find(id) expect(CaseLog.find(id)["accessibility_requirements_fully_wheelchair_accessible_housing"]).to eq(false)