diff options
Diffstat (limited to 'spec/services/merge_requests')
15 files changed, 67 insertions, 17 deletions
diff --git a/spec/services/merge_requests/approval_service_spec.rb b/spec/services/merge_requests/approval_service_spec.rb index e7fe5c19fa3..8761aba432f 100644 --- a/spec/services/merge_requests/approval_service_spec.rb +++ b/spec/services/merge_requests/approval_service_spec.rb @@ -13,6 +13,7 @@ RSpec.describe MergeRequests::ApprovalService, feature_category: :code_review_wo before do project.add_developer(user) + stub_feature_flags ff_require_saml_auth_to_approve: false end context 'with invalid approval' do diff --git a/spec/services/merge_requests/close_service_spec.rb b/spec/services/merge_requests/close_service_spec.rb index 25c75ae7244..199f5e3fd9a 100644 --- a/spec/services/merge_requests/close_service_spec.rb +++ b/spec/services/merge_requests/close_service_spec.rb @@ -42,7 +42,7 @@ RSpec.describe MergeRequests::CloseService, feature_category: :code_review_workf .with(@merge_request, 'close') end - it 'sends email to user2 about assign of new merge_request', :sidekiq_might_not_need_inline do + it 'sends email to user2 about assign of new merge_request', :sidekiq_inline do email = ActionMailer::Base.deliveries.last expect(email.to.first).to eq(user2.email) expect(email.subject).to include(merge_request.title) diff --git a/spec/services/merge_requests/create_service_spec.rb b/spec/services/merge_requests/create_service_spec.rb index 51b1bed1dd3..bf52800b77e 100644 --- a/spec/services/merge_requests/create_service_spec.rb +++ b/spec/services/merge_requests/create_service_spec.rb @@ -52,7 +52,7 @@ RSpec.describe MergeRequests::CreateService, :clean_gitlab_redis_shared_state, f end.to change { project.open_merge_requests_count }.from(0).to(1) end - it 'creates exactly 1 create MR event', :sidekiq_might_not_need_inline do + it 'creates exactly 1 create MR event', :sidekiq_inline do attributes = { action: :created, target_id: merge_request.id, diff --git a/spec/services/merge_requests/mergeability/check_base_service_spec.rb b/spec/services/merge_requests/mergeability/check_base_service_spec.rb index 806bde61c23..05f5b4f1315 100644 --- a/spec/services/merge_requests/mergeability/check_base_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_base_service_spec.rb @@ -8,6 +8,22 @@ RSpec.describe MergeRequests::Mergeability::CheckBaseService, feature_category: let(:merge_request) { double } let(:params) { double } + describe '.identifier' do + it 'sets the identifier' do + described_class.identifier("test") + + expect(described_class.identifier).to eq("test") + end + end + + describe '.description' do + it 'sets the description' do + described_class.description("test") + + expect(described_class.description).to eq("test") + end + end + describe '#merge_request' do it 'returns the merge_request' do expect(check_base_service.merge_request).to eq merge_request diff --git a/spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb index b6ee1049bb9..f29289be86b 100644 --- a/spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb @@ -7,6 +7,8 @@ RSpec.describe MergeRequests::Mergeability::CheckBrokenStatusService, feature_ca let(:merge_request) { build(:merge_request) } + it_behaves_like 'mergeability check service', :broken_status, 'Checks whether the merge request is broken' + describe '#execute' do let(:result) { check_broken_status.execute } @@ -19,7 +21,7 @@ RSpec.describe MergeRequests::Mergeability::CheckBrokenStatusService, feature_ca it 'returns a check result with status failed' do expect(result.status).to eq Gitlab::MergeRequests::Mergeability::CheckResult::FAILED_STATUS - expect(result.payload[:reason]).to eq(:broken_status) + expect(result.payload[:identifier]).to eq(:broken_status) end end diff --git a/spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb index 067e87859e7..aa7920b9b40 100644 --- a/spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb @@ -10,6 +10,8 @@ RSpec.describe MergeRequests::Mergeability::CheckCiStatusService, feature_catego let(:params) { { skip_ci_check: skip_check } } let(:skip_check) { false } + it_behaves_like 'mergeability check service', :ci_must_pass, 'Checks whether CI has passed' + describe '#execute' do let(:result) { check_ci_status.execute } @@ -39,7 +41,7 @@ RSpec.describe MergeRequests::Mergeability::CheckCiStatusService, feature_catego it 'returns a check result with status failed' do expect(result.status).to eq Gitlab::MergeRequests::Mergeability::CheckResult::FAILED_STATUS - expect(result.payload[:reason]).to eq :ci_must_pass + expect(result.payload[:identifier]).to eq :ci_must_pass end end end diff --git a/spec/services/merge_requests/mergeability/check_conflict_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_conflict_status_service_spec.rb index 14173c19bfb..e35de4d4042 100644 --- a/spec/services/merge_requests/mergeability/check_conflict_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_conflict_status_service_spec.rb @@ -7,6 +7,8 @@ RSpec.describe MergeRequests::Mergeability::CheckConflictStatusService, feature_ let(:merge_request) { build(:merge_request) } + it_behaves_like 'mergeability check service', :conflict, 'Checks whether the merge request has a conflict' + describe '#execute' do let(:result) { check_conflict_status.execute } @@ -27,7 +29,7 @@ RSpec.describe MergeRequests::Mergeability::CheckConflictStatusService, feature_ it 'returns a check result with status failed' do expect(result.status).to eq Gitlab::MergeRequests::Mergeability::CheckResult::FAILED_STATUS - expect(result.payload[:reason]).to eq(:conflict) + expect(result.payload[:identifier]).to eq(:conflict) end end end diff --git a/spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb index 4a8b28f603d..3d1fe0c838d 100644 --- a/spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb @@ -10,6 +10,9 @@ RSpec.describe MergeRequests::Mergeability::CheckDiscussionsStatusService, featu let(:params) { { skip_discussions_check: skip_check } } let(:skip_check) { false } + it_behaves_like 'mergeability check service', :discussions_not_resolved, + 'Checks whether the merge request has open discussions' + describe '#execute' do let(:result) { check_discussions_status.execute } @@ -39,7 +42,7 @@ RSpec.describe MergeRequests::Mergeability::CheckDiscussionsStatusService, featu it 'returns a check result with status failed' do expect(result.status).to eq Gitlab::MergeRequests::Mergeability::CheckResult::FAILED_STATUS - expect(result.payload[:reason]).to eq(:discussions_not_resolved) + expect(result.payload[:identifier]).to eq(:discussions_not_resolved) end end end diff --git a/spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb index 3837022232d..cef8169e725 100644 --- a/spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb @@ -10,6 +10,8 @@ RSpec.describe MergeRequests::Mergeability::CheckDraftStatusService, feature_cat let(:params) { { skip_draft_check: skip_check } } let(:skip_check) { false } + it_behaves_like 'mergeability check service', :draft_status, 'Checks whether the merge request is draft' + describe '#execute' do let(:result) { check_draft_status.execute } @@ -22,7 +24,7 @@ RSpec.describe MergeRequests::Mergeability::CheckDraftStatusService, feature_cat it 'returns a check result with status failed' do expect(result.status).to eq Gitlab::MergeRequests::Mergeability::CheckResult::FAILED_STATUS - expect(result.payload[:reason]).to eq(:draft_status) + expect(result.payload[:identifier]).to eq(:draft_status) end end diff --git a/spec/services/merge_requests/mergeability/check_open_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_open_status_service_spec.rb index 53ad77ea4df..f673e43931d 100644 --- a/spec/services/merge_requests/mergeability/check_open_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_open_status_service_spec.rb @@ -7,6 +7,8 @@ RSpec.describe MergeRequests::Mergeability::CheckOpenStatusService, feature_cate let(:merge_request) { build(:merge_request) } + it_behaves_like 'mergeability check service', :not_open, 'Checks whether the merge request is open' + describe '#execute' do let(:result) { check_open_status.execute } @@ -27,7 +29,7 @@ RSpec.describe MergeRequests::Mergeability::CheckOpenStatusService, feature_cate it 'returns a check result with status failed' do expect(result.status).to eq Gitlab::MergeRequests::Mergeability::CheckResult::FAILED_STATUS - expect(result.payload[:reason]).to eq(:not_open) + expect(result.payload[:identifier]).to eq(:not_open) end end end diff --git a/spec/services/merge_requests/mergeability/check_rebase_status_service_spec.rb b/spec/services/merge_requests/mergeability/check_rebase_status_service_spec.rb index d6948f72c0a..047cf5c13bf 100644 --- a/spec/services/merge_requests/mergeability/check_rebase_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/check_rebase_status_service_spec.rb @@ -10,6 +10,8 @@ RSpec.describe MergeRequests::Mergeability::CheckRebaseStatusService, feature_ca let(:params) { { skip_rebase_check: skip_check } } let(:skip_check) { false } + it_behaves_like 'mergeability check service', :need_rebase, 'Checks whether the merge request needs to be rebased' + describe '#execute' do let(:result) { check_rebase_status.execute } @@ -31,7 +33,7 @@ RSpec.describe MergeRequests::Mergeability::CheckRebaseStatusService, feature_ca it 'returns a check result with status failed' do expect(result.status).to eq Gitlab::MergeRequests::Mergeability::CheckResult::FAILED_STATUS - expect(result.payload[:reason]).to eq(:need_rebase) + expect(result.payload[:identifier]).to eq(:need_rebase) end end diff --git a/spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb b/spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb index 66bcb948cb6..a3c5427ee82 100644 --- a/spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb +++ b/spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb @@ -64,7 +64,7 @@ RSpec.describe ::MergeRequests::Mergeability::DetailedMergeStatusService, featur merge_request.close! end - it 'returns the failure reason' do + it 'returns the failed check' do expect(detailed_merge_status).to eq(:not_open) end end @@ -77,7 +77,7 @@ RSpec.describe ::MergeRequests::Mergeability::DetailedMergeStatusService, featur end context 'when pipeline does not exist' do - it 'returns the failure reason' do + it 'returns the failed check' do expect(detailed_merge_status).to eq(:ci_must_pass) end end @@ -97,15 +97,21 @@ RSpec.describe ::MergeRequests::Mergeability::DetailedMergeStatusService, featur context 'when the pipeline is running' do let(:ci_status) { :running } - it 'returns the failure reason' do + it 'returns the failed check' do expect(detailed_merge_status).to eq(:ci_still_running) end end + context 'when the pipeline is pending' do + let(:ci_status) { :pending } + + it { expect(detailed_merge_status).to eq(:ci_still_running) } + end + context 'when the pipeline is not running' do let(:ci_status) { :failed } - it 'returns the failure reason' do + it 'returns the failed check' do expect(detailed_merge_status).to eq(:ci_must_pass) end end diff --git a/spec/services/merge_requests/mergeability/run_checks_service_spec.rb b/spec/services/merge_requests/mergeability/run_checks_service_spec.rb index 06e15356a92..a67b01b8069 100644 --- a/spec/services/merge_requests/mergeability/run_checks_service_spec.rb +++ b/spec/services/merge_requests/mergeability/run_checks_service_spec.rb @@ -77,7 +77,7 @@ RSpec.describe MergeRequests::Mergeability::RunChecksService, :clean_gitlab_redi end context 'when one check fails' do - let(:failed_result) { Gitlab::MergeRequests::Mergeability::CheckResult.failed(payload: { reason: 'failed' }) } + let(:failed_result) { Gitlab::MergeRequests::Mergeability::CheckResult.failed(payload: { identifier: 'failed' }) } before do allow_next_instance_of(MergeRequests::Mergeability::CheckOpenStatusService) do |service| @@ -86,11 +86,11 @@ RSpec.describe MergeRequests::Mergeability::RunChecksService, :clean_gitlab_redi end end - it 'returns the failure reason' do + it 'returns the failed check' do result = execute expect(result.success?).to eq(false) - expect(execute.payload[:failure_reason]).to eq(:failed) + expect(execute.payload[:failed_check]).to eq(:failed) end it_behaves_like 'checks are all executed' do diff --git a/spec/services/merge_requests/post_merge_service_spec.rb b/spec/services/merge_requests/post_merge_service_spec.rb index f7526c169bd..61c754e30a9 100644 --- a/spec/services/merge_requests/post_merge_service_spec.rb +++ b/spec/services/merge_requests/post_merge_service_spec.rb @@ -153,5 +153,17 @@ RSpec.describe MergeRequests::PostMergeService, feature_category: :code_review_w expect(deploy_job.reload.canceled?).to be false end end + + context 'when the merge request has a pages deployment' do + it 'performs Pages::DeactivateMrDeploymentWorker asynchronously' do + expect(Pages::DeactivateMrDeploymentsWorker) + .to receive(:perform_async) + .with(merge_request) + + subject + + expect(merge_request.reload).to be_merged + end + end end end diff --git a/spec/services/merge_requests/reopen_service_spec.rb b/spec/services/merge_requests/reopen_service_spec.rb index e173cd382f2..f3ac55059bc 100644 --- a/spec/services/merge_requests/reopen_service_spec.rb +++ b/spec/services/merge_requests/reopen_service_spec.rb @@ -44,7 +44,7 @@ RSpec.describe MergeRequests::ReopenService, feature_category: :code_review_work expect(Integrations::GroupMentionWorker).not_to receive(:perform_async) end - it 'sends email to user2 about reopen of merge_request', :sidekiq_might_not_need_inline do + it 'sends email to user2 about reopen of merge_request', :sidekiq_inline do email = ActionMailer::Base.deliveries.last expect(email.to.first).to eq(user2.email) expect(email.subject).to include(merge_request.title) |