From 66bfac925f8f1ec249e5e38b0f7a9eb12d7ba61f Mon Sep 17 00:00:00 2001 From: Kat Date: Fri, 23 Aug 2024 09:38:39 +0100 Subject: [PATCH] Update scheme outcome before merge and on merge fail --- app/controllers/merge_requests_controller.rb | 2 +- app/jobs/process_merge_request_job.rb | 2 +- spec/jobs/process_merge_request_job_spec.rb | 5 +++-- spec/requests/merge_requests_controller_spec.rb | 2 ++ 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index a6cfcbd2c..c34e00581 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -64,7 +64,7 @@ class MergeRequestsController < ApplicationController def start_merge if @merge_request.status == "ready_to_merge" - @merge_request.update!(processing: true, last_failed_attempt: nil, total_users: @merge_request.total_visible_users_after_merge) + @merge_request.update!(processing: true, last_failed_attempt: nil, total_users: @merge_request.total_visible_users_after_merge, total_schemes: @merge_request.total_visible_schemes_after_merge) ProcessMergeRequestJob.perform_later(merge_request: @merge_request) end diff --git a/app/jobs/process_merge_request_job.rb b/app/jobs/process_merge_request_job.rb index 62c5109cc..be506e1e4 100644 --- a/app/jobs/process_merge_request_job.rb +++ b/app/jobs/process_merge_request_job.rb @@ -9,6 +9,6 @@ class ProcessMergeRequestJob < ApplicationJob Merge::MergeOrganisationsService.new(absorbing_organisation_id:, merging_organisation_ids:, merge_date:).call merge_request.update!(request_merged: true) rescue StandardError - merge_request.update!(last_failed_attempt: Time.zone.now, processing: false, total_users: nil) + merge_request.update!(last_failed_attempt: Time.zone.now, processing: false, total_users: nil, total_schemes: nil) end end diff --git a/spec/jobs/process_merge_request_job_spec.rb b/spec/jobs/process_merge_request_job_spec.rb index a8373ca5e..c026db6f1 100644 --- a/spec/jobs/process_merge_request_job_spec.rb +++ b/spec/jobs/process_merge_request_job_spec.rb @@ -13,7 +13,7 @@ describe ProcessMergeRequestJob do let(:organisation) { create(:organisation) } let(:merging_organisation) { create(:organisation) } let(:other_merging_organisation) { create(:organisation) } - let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation, absorbing_organisation: organisation, merge_date: Time.zone.local(2022, 3, 3), total_users: 5) } + let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation, absorbing_organisation: organisation, merge_date: Time.zone.local(2022, 3, 3), total_users: 5, total_schemes: 5) } before do create(:merge_request_organisation, merge_request:, merging_organisation:) @@ -27,7 +27,7 @@ describe ProcessMergeRequestJob do expect(merge_request.reload.status).to eq("request_merged") end - it "sets last_failed_attempt value, sets processing to false and clears total_users if there's an error" do + it "sets last_failed_attempt value, sets processing to false and clears total_schemes and total_users if there's an error" do allow(merge_organisations_service).to receive(:call).and_raise(ActiveRecord::Rollback) expect(merge_request.last_failed_attempt).to be_nil @@ -37,6 +37,7 @@ describe ProcessMergeRequestJob do expect(merge_request.last_failed_attempt).to be_within(10.seconds).of(Time.zone.now) expect(merge_request.processing).to eq(false) expect(merge_request.total_users).to be_nil + expect(merge_request.total_schemes).to be_nil end end end diff --git a/spec/requests/merge_requests_controller_spec.rb b/spec/requests/merge_requests_controller_spec.rb index 3be9772c9..30941360e 100644 --- a/spec/requests/merge_requests_controller_spec.rb +++ b/spec/requests/merge_requests_controller_spec.rb @@ -427,6 +427,7 @@ RSpec.describe MergeRequestsController, type: :request do before do create(:merge_request_organisation, merge_request:, merging_organisation: other_organisation) create(:merge_request_organisation, merge_request:, merging_organisation:) + create_list(:scheme, 2, owning_organisation: organisation) end it "runs the job with correct merge request" do @@ -435,6 +436,7 @@ RSpec.describe MergeRequestsController, type: :request do patch "/merge-request/#{merge_request.id}/start-merge" expect(merge_request.reload.status).to eq("processing") expect(merge_request.total_users).to eq(5) + expect(merge_request.total_schemes).to eq(2) end end