From 0694893a619870f0fb82f108871662a4a5d26c3c Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 29 Jun 2023 16:53:20 +0100 Subject: [PATCH] Filter out empty values and do not downcase nils --- app/controllers/form_controller.rb | 2 +- spec/fixtures/forms/2021_2022.json | 1 - spec/requests/form_controller_spec.rb | 25 ++++++++++++++++++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb index 0219b3c57..f55dfdd4b 100644 --- a/app/controllers/form_controller.rb +++ b/app/controllers/form_controller.rb @@ -11,7 +11,7 @@ class FormController < ApplicationController mandatory_questions_with_no_response = mandatory_questions_with_no_response(responses_for_page) if mandatory_questions_with_no_response.empty? && @log.update(responses_for_page.merge(updated_by: current_user)) - flash[:notice] = "You have successfully updated #{@page.questions.map(&:check_answer_label).first.downcase}" if previous_interruption_screen_page_id.present? + flash[:notice] = "You have successfully updated #{@page.questions.map(&:check_answer_label).reject { |e| e.to_s.empty? }.first&.downcase}" if previous_interruption_screen_page_id.present? redirect_to(successful_redirect_path) else mandatory_questions_with_no_response.map do |question| diff --git a/spec/fixtures/forms/2021_2022.json b/spec/fixtures/forms/2021_2022.json index 5a400d095..300b658b6 100644 --- a/spec/fixtures/forms/2021_2022.json +++ b/spec/fixtures/forms/2021_2022.json @@ -57,7 +57,6 @@ "questions": { "sex1": { "check_answers_card_number": 1, - "check_answer_label": "Lead tenant’s gender identity", "header": "Which of these best describes the tenant’s gender identity?", "type": "radio", "answer_options": { diff --git a/spec/requests/form_controller_spec.rb b/spec/requests/form_controller_spec.rb index a2c06c4f1..d8b1e7dad 100644 --- a/spec/requests/form_controller_spec.rb +++ b/spec/requests/form_controller_spec.rb @@ -546,7 +546,7 @@ RSpec.describe FormController, type: :request do end before do - post "/lettings-logs/#{lettings_log.id}/#{page_id.dasherize}?referrer=interruption_screen", params: + post "/lettings-logs/#{lettings_log.id}/lead-tenant-age?referrer=interruption_screen", params: end it "redirects back to the soft validation page" do @@ -560,6 +560,29 @@ RSpec.describe FormController, type: :request do end end + context "when the question was accessed from an interruption screen and it has no check answers" do + let(:params) do + { + id: lettings_log.id, + lettings_log: { + page: "person_1_gender", + sex1: "F", + interruption_page_id: "retirement_value_check", + }, + } + end + + before do + post "/lettings-logs/#{lettings_log.id}/lead-tenant-gender-identity?referrer=interruption_screen", params: + end + + it "displays a success banner without crashing" do + follow_redirect! + follow_redirect! + expect(response.body).to include("You have successfully updated") + end + end + context "when requesting a soft validation page for validation that isn't triggering" do before do get "/lettings-logs/#{lettings_log.id}/retirement-value-check", headers: headers.merge({ "HTTP_REFERER" => referrer })