From e356365c21cdef720b9069a61ce365a0fde88a59 Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 20 Oct 2023 11:11:09 +0100 Subject: [PATCH] Correctly route when comming from duplicate banner --- app/helpers/form_page_helper.rb | 8 ++++++++ app/views/form/page.html.erb | 19 +++++++++---------- spec/features/form/form_navigation_spec.rb | 2 +- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/app/helpers/form_page_helper.rb b/app/helpers/form_page_helper.rb index e12d7fbb7..99c5276bc 100644 --- a/app/helpers/form_page_helper.rb +++ b/app/helpers/form_page_helper.rb @@ -2,4 +2,12 @@ module FormPageHelper def action_href(log, page_id, referrer = "check_answers") send("#{log.model_name.param_key}_#{page_id}_path", log, referrer:) end + + def returning_to_question_page?(page, referrer) + page.interruption_screen? || referrer == "check_answers" + end + + def accessed_from_duplicate_logs?(referrer) + %w[duplicate_logs duplicate_logs_banner].include?(referrer) + end end diff --git a/app/views/form/page.html.erb b/app/views/form/page.html.erb index d83f5b762..7781129d3 100644 --- a/app/views/form/page.html.erb +++ b/app/views/form/page.html.erb @@ -63,20 +63,19 @@ <%= f.hidden_field :interruption_page_referrer_type, value: @interruption_page_referrer_type %>
- <% if !@page.interruption_screen? && if request.query_parameters["referrer"] != "check_answers" && request.query_parameters["referrer"] != "duplicate_logs" %> - <%= f.govuk_submit "Save and continue" %> + <% if accessed_from_duplicate_logs?(request.query_parameters["referrer"]) %> + <%= f.govuk_submit "Save changes" %> + <%= govuk_link_to "Cancel", send("#{@log.class.name.underscore}_duplicate_logs_path", @log, original_log_id: request.query_parameters["original_log_id"]) %> + <% elsif returning_to_question_page?(@page, request.query_parameters["referrer"]) %> + <%= f.govuk_submit "Save changes" %> + <%= govuk_link_to "Cancel", send(@log.form.cancel_path(@page, @log), @log) %> + <% else %> + <%= f.govuk_submit "Save and continue" %> <%= govuk_link_to( (@page.skip_text || "Skip for now"), (@page.skip_href(@log) || send(@log.form.next_page_redirect_path(@page, @log, current_user), @log)), ) %> - <% elsif request.query_parameters["referrer"] == "duplicate_logs" %> - <%= f.govuk_submit "Save changes" %> - <%= govuk_link_to "Cancel", send("#{@log.class.name.underscore}_duplicate_logs_path", @log, original_log_id: request.query_parameters["original_log_id"]) %> - <% else %> - <%= f.govuk_submit "Save changes" %> - <%= govuk_link_to "Cancel", send(@log.form.cancel_path(@page, @log), @log) %> - <% end %> - <% end %> + <% end %>
diff --git a/spec/features/form/form_navigation_spec.rb b/spec/features/form/form_navigation_spec.rb index a62be2a89..a5784d1ec 100644 --- a/spec/features/form/form_navigation_spec.rb +++ b/spec/features/form/form_navigation_spec.rb @@ -187,7 +187,7 @@ RSpec.describe "Form Navigation" do it "shows a correct Save Changes buttons" do visit("lettings-logs/#{id}/tenant-code-test?first_remaining_duplicate_id=#{id}&original_log_id=#{id}&referrer=duplicate_logs") click_button(text: "Save changes") - expect(page).to have_current_path("/lettings-logs/#{id}/duplicate-logs?original_log_id=#{id}") + expect(page).to have_current_path("/lettings-logs/#{id}/duplicate-logs?original_log_id=#{id}&referrer=duplicate_logs") end end end