diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb index abeb2a7a1..0c630aa7d 100644 --- a/app/controllers/form_controller.rb +++ b/app/controllers/form_controller.rb @@ -232,6 +232,11 @@ private return send("#{@log.class.name.underscore}_#{params[@log.model_name.param_key]['original_page_id']}_path", @log, { check_errors: true, related_question_ids: params[@log.model_name.param_key]["related_question_ids"].split(" ") }.compact) end + if params["referrer"] == "check_errors" + @page = form.get_page(params[@log.model_name.param_key]["page"]) + return send("#{@log.class.name.underscore}_#{params['original_page_id']}_path", @log, { check_errors: true, related_question_ids: params["related_question_ids"] }.compact) + end + is_new_answer_from_check_answers = is_referrer_type?("check_answers_new_answer") redirect_path = form.next_page_redirect_path(@page, @log, current_user, ignore_answered: is_new_answer_from_check_answers) referrer = is_new_answer_from_check_answers ? "check_answers_new_answer" : nil diff --git a/spec/requests/check_errors_controller_spec.rb b/spec/requests/check_errors_controller_spec.rb index 2145e2c7c..3c4a9390e 100644 --- a/spec/requests/check_errors_controller_spec.rb +++ b/spec/requests/check_errors_controller_spec.rb @@ -268,4 +268,59 @@ RSpec.describe CheckErrorsController, type: :request do end end end + + describe "answer incomplete question" do + context "when user is signed in" do + context "and answering specific lettings question" do + let(:params) do + { + original_page_id: "income_amount", + referrer: "check_errors", + related_question_ids: %w[hhmemb ecstat1 earnings], + lettings_log: { + page: "household_members", + hhmemb: "2", + }, + } + end + + before do + sign_in user + post "/lettings-logs/#{lettings_log.id}/household-members", params: + end + + it "maintains original check_errors data in query params" do + follow_redirect! + expect(request.query_parameters["check_errors"]).to eq("true") + expect(request.query_parameters["related_question_ids"]).to eq(%w[hhmemb ecstat1 earnings]) + end + end + + context "and answering specific sales question" do + let(:params) do + { + original_page_id: "buyer_1_income", + referrer: "check_errors", + related_question_ids: %w[income1 la ownershipsch], + sales_log: { + page: "buyer_1_income", + income1: "1000", + income1nk: "0", + }, + } + end + + before do + sign_in user + post "/sales-logs/#{sales_log.id}/buyer-1-income", params: + end + + it "maintains original check_errors data in query params" do + follow_redirect! + expect(request.query_parameters["check_errors"]).to eq("true") + expect(request.query_parameters["related_question_ids"]).to eq(%w[income1 la ownershipsch]) + end + end + end + end end