summaryrefslogtreecommitdiff
path: root/spec/requests/api/commit_statuses_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/commit_statuses_spec.rb')
-rw-r--r--spec/requests/api/commit_statuses_spec.rb40
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