diff options
Diffstat (limited to 'spec/services/merge_requests/approval_service_spec.rb')
-rw-r--r-- | spec/services/merge_requests/approval_service_spec.rb | 73 |
1 files changed, 7 insertions, 66 deletions
diff --git a/spec/services/merge_requests/approval_service_spec.rb b/spec/services/merge_requests/approval_service_spec.rb index ab98fad5d73..0846ec7f50e 100644 --- a/spec/services/merge_requests/approval_service_spec.rb +++ b/spec/services/merge_requests/approval_service_spec.rb @@ -36,29 +36,15 @@ RSpec.describe MergeRequests::ApprovalService do it 'does not publish MergeRequests::ApprovedEvent' do expect { service.execute(merge_request) }.not_to publish_event(MergeRequests::ApprovedEvent) end + end - context 'async_after_approval feature flag is disabled' do - before do - stub_feature_flags(async_after_approval: false) - end - - it 'does not create approve MR event' do - expect(EventCreateService).not_to receive(:new) - - service.execute(merge_request) - end - - it 'does not create an approval note' do - expect(SystemNoteService).not_to receive(:approve_mr) - - service.execute(merge_request) - end - - it 'does not mark pending todos as done' do - service.execute(merge_request) + context 'with an already approved MR' do + before do + merge_request.approvals.create!(user: user) + end - expect(todo.reload).to be_pending - end + it 'does not create an approval' do + expect { service.execute(merge_request) }.not_to change { merge_request.approvals.size } end end @@ -81,51 +67,6 @@ RSpec.describe MergeRequests::ApprovalService do .to publish_event(MergeRequests::ApprovedEvent) .with(current_user_id: user.id, merge_request_id: merge_request.id) end - - context 'async_after_approval feature flag is disabled' do - let(:notification_service) { NotificationService.new } - - before do - stub_feature_flags(async_after_approval: false) - allow(service).to receive(:notification_service).and_return(notification_service) - end - - it 'creates approve MR event' do - expect_next_instance_of(EventCreateService) do |instance| - expect(instance).to receive(:approve_mr) - .with(merge_request, user) - end - - service.execute(merge_request) - end - - it 'creates an approval note' do - expect(SystemNoteService).to receive(:approve_mr).with(merge_request, user) - - service.execute(merge_request) - end - - it 'marks pending todos as done' do - service.execute(merge_request) - - expect(todo.reload).to be_done - end - - it 'sends a notification when approving' do - expect(notification_service).to receive_message_chain(:async, :approve_mr) - .with(merge_request, user) - - service.execute(merge_request) - end - - context 'with remaining approvals' do - it 'fires an approval webhook' do - expect(service).to receive(:execute_hooks).with(merge_request, 'approved') - - service.execute(merge_request) - end - end - end end context 'user cannot update the merge request' do |