diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb index c018a99df..f8d757aaa 100644 --- a/app/helpers/merge_requests_helper.rb +++ b/app/helpers/merge_requests_helper.rb @@ -74,4 +74,8 @@ module MergeRequestsHelper { text: "Change", href: send("#{page}_merge_request_path", merge_request, referrer: "check_answers"), visually_hidden_text: page.humanize } end end + + def submit_merge_request_url(referrer) + referrer == "check_answers" ? merge_request_path(referrer: "check_answers") : merge_request_path + end end diff --git a/app/views/merge_requests/absorbing_organisation.html.erb b/app/views/merge_requests/absorbing_organisation.html.erb index f50bfe943..804e9f03b 100644 --- a/app/views/merge_requests/absorbing_organisation.html.erb +++ b/app/views/merge_requests/absorbing_organisation.html.erb @@ -4,7 +4,7 @@ <%= govuk_back_link href: merge_request_back_link(@merge_request, "absorbing_organisation", request.query_parameters["referrer"]) %> <% end %> -<%= form_with model: @merge_request, url: merge_request_path, method: :patch do |f| %> +<%= form_with model: @merge_request, url: submit_merge_request_url(request.query_parameters["referrer"]), method: :patch do |f| %> <%= f.govuk_error_summary %>

Which organisation is absorbing the others?

diff --git a/app/views/merge_requests/helpdesk_ticket.html.erb b/app/views/merge_requests/helpdesk_ticket.html.erb index e2a47653d..30bc49a1e 100644 --- a/app/views/merge_requests/helpdesk_ticket.html.erb +++ b/app/views/merge_requests/helpdesk_ticket.html.erb @@ -4,7 +4,7 @@ <%= govuk_back_link href: merge_request_back_link(@merge_request, "helpdesk_ticket", request.query_parameters["referrer"]) %> <% end %> -<%= form_with model: @merge_request, url: merge_request_path, method: :patch do |f| %> +<%= form_with model: @merge_request, url: submit_merge_request_url(request.query_parameters["referrer"]), method: :patch do |f| %> <%= f.govuk_error_summary %>

Which helpdesk ticket reported this merge?

diff --git a/app/views/merge_requests/merge_date.html.erb b/app/views/merge_requests/merge_date.html.erb index 09b3411ea..debc8eb2e 100644 --- a/app/views/merge_requests/merge_date.html.erb +++ b/app/views/merge_requests/merge_date.html.erb @@ -5,7 +5,7 @@ <% end %>
- <%= form_with model: @merge_request, url: merge_request_path, method: :patch do |f| %> + <%= form_with model: @merge_request, url: submit_merge_request_url(request.query_parameters["referrer"]), method: :patch do |f| %> <%= f.govuk_error_summary %>

What is the merge date?

diff --git a/spec/requests/merge_requests_controller_spec.rb b/spec/requests/merge_requests_controller_spec.rb index 8b7a577a7..592d2521a 100644 --- a/spec/requests/merge_requests_controller_spec.rb +++ b/spec/requests/merge_requests_controller_spec.rb @@ -276,6 +276,24 @@ RSpec.describe MergeRequestsController, type: :request do }.from(nil).to(other_organisation) end end + + context "when updating from check_answers page" do + let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation) } + let(:params) do + { merge_request: { absorbing_organisation_id: "", page: "absorbing_organisation" } } + end + + let(:request) do + patch "/merge-request/#{merge_request.id}?referrer=check_answers", headers:, params: + end + + it "keeps corrent links if validation fails" do + request + + expect(page).to have_link("Cancel", href: merge_request_path(merge_request)) + expect(page).to have_button("Save changes") + end + end end describe "from merge_date page" do