diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 21:18:33 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 21:18:33 +0300 |
commit | f64a639bcfa1fc2bc89ca7db268f594306edfd7c (patch) | |
tree | a2c3c2ebcc3b45e596949db485d6ed18ffaacfa1 /spec/requests/api/commit_statuses_spec.rb | |
parent | bfbc3e0d6583ea1a91f627528bedc3d65ba4b10f (diff) |
Add latest changes from gitlab-org/gitlab@13-10-stable-eev13.10.0-rc40
Diffstat (limited to 'spec/requests/api/commit_statuses_spec.rb')
-rw-r--r-- | spec/requests/api/commit_statuses_spec.rb | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/spec/requests/api/commit_statuses_spec.rb b/spec/requests/api/commit_statuses_spec.rb index bec15b788c3..10fa15d468f 100644 --- a/spec/requests/api/commit_statuses_spec.rb +++ b/spec/requests/api/commit_statuses_spec.rb @@ -291,7 +291,7 @@ RSpec.describe API::CommitStatuses do end context 'when retrying a commit status' do - before do + subject(:post_request) do post api(post_url, developer), params: { state: 'failed', name: 'test', ref: 'master' } @@ -300,15 +300,45 @@ RSpec.describe API::CommitStatuses do end it 'correctly posts a new commit status' do + post_request + expect(response).to have_gitlab_http_status(:created) expect(json_response['sha']).to eq(commit.id) expect(json_response['status']).to eq('success') end - it 'retries a commit status', :sidekiq_might_not_need_inline do - expect(CommitStatus.count).to eq 2 - expect(CommitStatus.first).to be_retried - expect(CommitStatus.last.pipeline).to be_success + context 'feature flags' do + using RSpec::Parameterized::TableSyntax + + where(:ci_fix_commit_status_retried, :ci_remove_update_retried_from_process_pipeline, :previous_statuses_retried) do + true | true | true + true | false | true + false | true | false + false | false | true + end + + with_them do + before do + stub_feature_flags( + ci_fix_commit_status_retried: ci_fix_commit_status_retried, + ci_remove_update_retried_from_process_pipeline: ci_remove_update_retried_from_process_pipeline + ) + end + + it 'retries a commit status', :sidekiq_might_not_need_inline do + post_request + + expect(CommitStatus.count).to eq 2 + + if previous_statuses_retried + expect(CommitStatus.first).to be_retried + expect(CommitStatus.last.pipeline).to be_success + else + expect(CommitStatus.first).not_to be_retried + expect(CommitStatus.last.pipeline).to be_failed + end + end + end end end |