diff options
Diffstat (limited to 'spec/services/merge_requests/mergeability')
10 files changed, 51 insertions, 14 deletions
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 |