summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-07-28 18:46:04 +0900
committerShinya Maeda <shinya@gitlab.com>2017-07-28 18:46:04 +0900
commitdca9bd9e6978cc240565e09de34c1387d7249294 (patch)
tree1096f748faa3e2df9eb5b7efbbcd11b1805064d1
parent2ea6915ed8a9bac8da0aeb1558a2e8981c4409d0 (diff)
downloadgitlab-ce-feature/sm/35282-ci_pipeline_variables-2.tar.gz
Expand pipeline_trigger_service_spec by godfat requestfeature/sm/35282-ci_pipeline_variables-2
-rw-r--r--spec/services/ci/pipeline_trigger_service_spec.rb44
1 files changed, 28 insertions, 16 deletions
diff --git a/spec/services/ci/pipeline_trigger_service_spec.rb b/spec/services/ci/pipeline_trigger_service_spec.rb
index 9e60d04738c..945a2fe1a6b 100644
--- a/spec/services/ci/pipeline_trigger_service_spec.rb
+++ b/spec/services/ci/pipeline_trigger_service_spec.rb
@@ -12,43 +12,57 @@ describe Ci::PipelineTriggerService, services: true do
let(:trigger) { create(:ci_trigger, project: project, owner: user) }
let(:result) { described_class.new(project, user, params).execute }
- let(:params) do
- { token: token, ref: ref, variables: variables }
- end
-
before do
project.add_developer(user)
end
- context 'when params have an existsed trigger token' do
- let(:token) { trigger.token }
+ context 'when trigger belongs to a different project' do
+ let(:params) { { token: trigger.token, ref: 'master', variables: nil } }
+ let(:trigger) { create(:ci_trigger, project: create(:empty_project), owner: user) }
+
+ it 'does nothing' do
+ expect { result }.not_to change { Ci::Pipeline.count }
+ end
+ end
+ context 'when params have an existsed trigger token' do
context 'when params have an existsed ref' do
- let(:ref) { 'master' }
- let(:variables) {}
+ let(:params) { { token: trigger.token, ref: 'master', variables: nil } }
it 'triggers a pipeline' do
expect { result }.to change { Ci::Pipeline.count }.by(1)
- expect(result[:pipeline].ref).to eq(ref)
+ expect(result[:pipeline].ref).to eq('master')
expect(result[:pipeline].project).to eq(project)
expect(result[:pipeline].user).to eq(trigger.owner)
expect(result[:status]).to eq(:success)
end
+ context 'when commit message has [ci skip]' do
+ before do
+ allow_any_instance_of(Ci::Pipeline).to receive(:git_commit_message) { '[ci skip]' }
+ end
+
+ it 'ignores [ci skip] and create as general' do
+ expect { result }.to change { Ci::Pipeline.count }.by(1)
+ expect(result[:status]).to eq(:success)
+ end
+ end
+
context 'when params have a variable' do
+ let(:params) { { token: trigger.token, ref: 'master', variables: variables } }
let(:variables) { { 'AAA' => 'AAA123' } }
it 'has a variable' do
expect { result }.to change { Ci::PipelineVariable.count }.by(1)
- expect(result[:pipeline].variables.first.key).to eq(variables.keys.first)
- expect(result[:pipeline].variables.first.value).to eq(variables.values.first)
+ .and change { Ci::TriggerRequest.count }.by(1)
+ expect(result[:pipeline].variables.map { |v| { v.key => v.value } }.first).to eq(variables)
+ expect(result[:pipeline].trigger_requests.last.variables).to be_nil
end
end
end
context 'when params have a non-existsed ref' do
- let(:ref) { 'invalid-ref' }
- let(:variables) {}
+ let(:params) { { token: trigger.token, ref: 'invalid-ref', variables: nil } }
it 'does not trigger a pipeline' do
expect { result }.not_to change { Ci::Pipeline.count }
@@ -58,9 +72,7 @@ describe Ci::PipelineTriggerService, services: true do
end
context 'when params have a non-existsed trigger token' do
- let(:token) { 'invalid-token' }
- let(:ref) {}
- let(:variables) {}
+ let(:params) { { token: 'invalid-token', ref: nil, variables: nil } }
it 'does not trigger a pipeline' do
expect { result }.not_to change { Ci::Pipeline.count }