Browse Source

CLDC-3465 Handle additional errors (#2480)

* Keep check errors query params

* Add success banner

* Update confirm and continue button
pull/2484/head
kosiakkatrina 9 months ago committed by Kat
parent
commit
e011d891ad
  1. 7
      app/controllers/form_controller.rb
  2. 2
      app/views/form/check_errors.html.erb
  3. 59
      spec/requests/check_errors_controller_spec.rb

7
app/controllers/form_controller.rb

@ -229,9 +229,16 @@ private
if params[@log.model_name.param_key]["check_errors"]
@page = form.get_page(params[@log.model_name.param_key]["page"])
flash[:notice] = "You have successfully updated #{@page.questions.map(&:check_answer_label).to_sentence}"
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"])
flash[:notice] = "You have successfully updated #{@page.questions.map(&:check_answer_label).to_sentence}"
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

2
app/views/form/check_errors.html.erb

@ -61,6 +61,6 @@
</div>
<% end %>
<%= govuk_button_link_to "Confirm and continue", "/" %>
<%= govuk_button_link_to "Confirm and continue", @original_page_id ? send("#{@log.model_name.param_key}_#{@original_page_id}_path", @log) : send("#{@log.model_name.param_key}_#{@page.id}_path", @log) %>
</div>
</div>

59
spec/requests/check_errors_controller_spec.rb

@ -268,4 +268,63 @@ 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: "household_members",
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])
expect(page).to have_content("You have successfully updated Number of household members")
expect(page).to have_link("Confirm and continue", href: "/lettings-logs/#{lettings_log.id}/household-members")
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])
expect(page).to have_content("You have successfully updated Buyer 1’s gross annual income known? and Buyer 1’s gross annual income")
expect(page).to have_link("Confirm and continue", href: "/sales-logs/#{sales_log.id}/buyer-1-income")
end
end
end
end
end

Loading…
Cancel
Save