Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/triggers_spec.rb')
-rw-r--r--spec/requests/api/triggers_spec.rb35
1 files changed, 33 insertions, 2 deletions
diff --git a/spec/requests/api/triggers_spec.rb b/spec/requests/api/triggers_spec.rb
index 55d17fabc9a..4318f106996 100644
--- a/spec/requests/api/triggers_spec.rb
+++ b/spec/requests/api/triggers_spec.rb
@@ -49,8 +49,6 @@ RSpec.describe API::Triggers do
expect(response).to have_gitlab_http_status(:created)
expect(json_response).to include('id' => pipeline.id)
- pipeline.builds.reload
- expect(pipeline.builds.pending.size).to eq(2)
expect(pipeline.builds.size).to eq(5)
end
@@ -126,6 +124,39 @@ RSpec.describe API::Triggers do
end
end
+ describe 'adding arguments to the application context' do
+ subject { subject_proc.call }
+
+ let(:expected_params) { { client_id: "user/#{user.id}", project: project.full_path } }
+ let(:subject_proc) { proc { post api("/projects/#{project.id}/ref/master/trigger/pipeline?token=#{trigger_token}"), params: { ref: 'refs/heads/other-branch' } } }
+
+ context 'when triggering a pipeline from a trigger token' do
+ it_behaves_like 'storing arguments in the application context'
+ it_behaves_like 'not executing any extra queries for the application context'
+ end
+
+ context 'when triggered from another running job' do
+ let!(:trigger) { }
+ let!(:trigger_request) { }
+
+ context 'when other job is triggered by a user' do
+ let(:trigger_token) { create(:ci_build, :running, project: project, user: user).token }
+
+ it_behaves_like 'storing arguments in the application context'
+ it_behaves_like 'not executing any extra queries for the application context'
+ end
+
+ context 'when other job is triggered by a runner' do
+ let(:trigger_token) { create(:ci_build, :running, project: project, runner: runner).token }
+ let(:runner) { create(:ci_runner) }
+ let(:expected_params) { { client_id: "runner/#{runner.id}", project: project.full_path } }
+
+ it_behaves_like 'storing arguments in the application context'
+ it_behaves_like 'not executing any extra queries for the application context', 1
+ end
+ end
+ end
+
context 'when is triggered by a pipeline hook' do
it 'does not create a new pipeline' do
expect do