diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index 9f56a8747..011edcbb3 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -204,9 +204,9 @@ module FiltersHelper def change_filter_for_csv_url(filter, filter_type, search_term, codes_only, organisation_id) if organisation_id.present? - send("#{filter_type}_filters_#{filter[:id]}_organisation_path", organisation_id, search: search_term, codes_only:) + send("#{filter_type}_filters_#{filter[:id]}_organisation_path", organisation_id, search: search_term, codes_only:, referrer: "check_answers") else - send("filters_#{filter[:id]}_#{filter_type}_path", search: search_term, codes_only:) + send("filters_#{filter[:id]}_#{filter_type}_path", search: search_term, codes_only:, referrer: "check_answers") end end diff --git a/app/views/filters/years.html.erb b/app/views/filters/years.html.erb index 4e4c31816..43978bc2a 100644 --- a/app/views/filters/years.html.erb +++ b/app/views/filters/years.html.erb @@ -32,6 +32,6 @@
<%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", send("#{@filter_type}_path"), secondary: true %> + <%= govuk_button_link_to "Cancel", params["referrer"] == "check_answers" ? send("csv_download_#{@filter_type}_path", search: request.params["search"], codes_only: request.params["codes_only"]) : send("#{@filter_type}_path"), secondary: true %>
<% end %> diff --git a/spec/features/lettings_log_spec.rb b/spec/features/lettings_log_spec.rb index d462810a3..a29047cbb 100644 --- a/spec/features/lettings_log_spec.rb +++ b/spec/features/lettings_log_spec.rb @@ -177,8 +177,8 @@ RSpec.describe "Lettings Log Features" do it "allows updating filters" do click_link("Download (CSV, codes only)") expect(page).to have_content("You've selected 2 logs") - click_link("Change", href: "/lettings-logs/filters/needstype?codes_only=true&search=1") - expect(page).to have_current_path("/lettings-logs/filters/needstype?codes_only=true&search=1") + click_link("Change", href: "/lettings-logs/filters/needstype?codes_only=true&referrer=check_answers&search=1") + expect(page).to have_current_path("/lettings-logs/filters/needstype?codes_only=true&referrer=check_answers&search=1") check("needstypes-1-field", allow_label_click: true) click_button("Save changes") @@ -186,7 +186,7 @@ RSpec.describe "Lettings Log Features" do expect(page).to have_current_path("/lettings-logs/csv-download?codes_only=true&search=1") expect(page).to have_content("You've selected 1 logs") - click_link("Change", href: "/lettings-logs/filters/status?codes_only=true&search=1") + click_link("Change", href: "/lettings-logs/filters/status?codes_only=true&referrer=check_answers&search=1") check("status-not-started-field", allow_label_click: true) click_button("Save changes") @@ -194,9 +194,17 @@ RSpec.describe "Lettings Log Features" do expect(page).not_to have_button("Send email") end + it "routes back to CYA when cancel is pressed from year question" do + click_link("Download (CSV, codes only)") + click_link("Change", href: "/lettings-logs/filters/years?codes_only=true&referrer=check_answers&search=1") + + click_link(text: "Cancel") + expect(page).to have_current_path("/lettings-logs/csv-download?codes_only=true&search=1") + end + it "routes back to the filters CYA when cancel is pressed" do click_link("Download (CSV)") - click_link("Change", href: "/lettings-logs/filters/needstype?codes_only=false&search=1") + click_link("Change", href: "/lettings-logs/filters/needstype?codes_only=false&referrer=check_answers&search=1") click_link(text: "Cancel") expect(page).to have_current_path("/lettings-logs/csv-download?codes_only=false&search=1") diff --git a/spec/features/sales_log_spec.rb b/spec/features/sales_log_spec.rb index 7e8d5d847..86469658c 100644 --- a/spec/features/sales_log_spec.rb +++ b/spec/features/sales_log_spec.rb @@ -205,14 +205,14 @@ RSpec.describe "Sales Log Features" do it "allows updating filters" do click_link("Download (CSV, codes only)") expect(page).to have_content("You've selected 2 logs") - click_link("Change", href: "/sales-logs/filters/assigned-to?codes_only=true&search=1") + click_link("Change", href: "/sales-logs/filters/assigned-to?codes_only=true&referrer=check_answers&search=1") choose("assigned-to-you-field", allow_label_click: true) click_button("Save changes") expect(page).to have_content("You've selected 1 logs") - click_link("Change", href: "/sales-logs/filters/status?codes_only=true&search=1") + click_link("Change", href: "/sales-logs/filters/status?codes_only=true&referrer=check_answers&search=1") check("status-not-started-field", allow_label_click: true) click_button("Save changes") @@ -222,7 +222,7 @@ RSpec.describe "Sales Log Features" do it "routes back to the filters CYA when cancel is pressed" do click_link("Download (CSV)") - click_link("Change", href: "/sales-logs/filters/assigned-to?codes_only=false&search=1") + click_link("Change", href: "/sales-logs/filters/assigned-to?codes_only=false&referrer=check_answers&search=1") click_link(text: "Cancel") expect(page).to have_current_path("/sales-logs/csv-download?codes_only=false&search=1") diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index d30ae4c80..e2e159466 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -1426,12 +1426,12 @@ RSpec.describe LettingsLogsController, type: :request do it "allows updating log filters" do expect(page).to have_content("Check your filters") expect(page).to have_link("Change", count: 6) - expect(page).to have_link("Change", href: "/lettings-logs/filters/years?codes_only=false&search=#{search_term}") - expect(page).to have_link("Change", href: "/lettings-logs/filters/assigned-to?codes_only=false&search=#{search_term}") - expect(page).to have_link("Change", href: "/lettings-logs/filters/owned-by?codes_only=false&search=#{search_term}") - expect(page).to have_link("Change", href: "/lettings-logs/filters/managed-by?codes_only=false&search=#{search_term}") - expect(page).to have_link("Change", href: "/lettings-logs/filters/status?codes_only=false&search=#{search_term}") - expect(page).to have_link("Change", href: "/lettings-logs/filters/needstype?codes_only=false&search=#{search_term}") + expect(page).to have_link("Change", href: "/lettings-logs/filters/years?codes_only=false&referrer=check_answers&search=#{search_term}") + expect(page).to have_link("Change", href: "/lettings-logs/filters/assigned-to?codes_only=false&referrer=check_answers&search=#{search_term}") + expect(page).to have_link("Change", href: "/lettings-logs/filters/owned-by?codes_only=false&referrer=check_answers&search=#{search_term}") + expect(page).to have_link("Change", href: "/lettings-logs/filters/managed-by?codes_only=false&referrer=check_answers&search=#{search_term}") + expect(page).to have_link("Change", href: "/lettings-logs/filters/status?codes_only=false&referrer=check_answers&search=#{search_term}") + expect(page).to have_link("Change", href: "/lettings-logs/filters/needstype?codes_only=false&referrer=check_answers&search=#{search_term}") end end diff --git a/spec/requests/sales_logs_controller_spec.rb b/spec/requests/sales_logs_controller_spec.rb index af7ba4b5a..90f391a11 100644 --- a/spec/requests/sales_logs_controller_spec.rb +++ b/spec/requests/sales_logs_controller_spec.rb @@ -986,11 +986,11 @@ RSpec.describe SalesLogsController, type: :request do it "allows updating log filters" do expect(page).to have_content("Check your filters") expect(page).to have_link("Change", count: 5) - expect(page).to have_link("Change", href: "/sales-logs/filters/years?codes_only=false&search=#{search_term}") - expect(page).to have_link("Change", href: "/sales-logs/filters/assigned-to?codes_only=false&search=#{search_term}") - expect(page).to have_link("Change", href: "/sales-logs/filters/owned-by?codes_only=false&search=#{search_term}") - expect(page).to have_link("Change", href: "/sales-logs/filters/managed-by?codes_only=false&search=#{search_term}") - expect(page).to have_link("Change", href: "/sales-logs/filters/status?codes_only=false&search=#{search_term}") + expect(page).to have_link("Change", href: "/sales-logs/filters/years?codes_only=false&referrer=check_answers&search=#{search_term}") + expect(page).to have_link("Change", href: "/sales-logs/filters/assigned-to?codes_only=false&referrer=check_answers&search=#{search_term}") + expect(page).to have_link("Change", href: "/sales-logs/filters/owned-by?codes_only=false&referrer=check_answers&search=#{search_term}") + expect(page).to have_link("Change", href: "/sales-logs/filters/managed-by?codes_only=false&referrer=check_answers&search=#{search_term}") + expect(page).to have_link("Change", href: "/sales-logs/filters/status?codes_only=false&referrer=check_answers&search=#{search_term}") end it "has a hidden field with the search term" do