summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-09-01 00:17:56 +0900
committerShinya Maeda <shinya@gitlab.com>2017-09-04 21:55:26 +0900
commitd614c431055286eaab3b82e810186ac19a2c4fd7 (patch)
tree1cd600d5212471e79f295c310e736b2545fc6add
parentcff104ec4b0dd2c53ed907ab7ca423b7c587dee8 (diff)
downloadgitlab-ce-d614c431055286eaab3b82e810186ac19a2c4fd7.tar.gz
Fix trigger_request.variables
-rw-r--r--lib/api/v3/triggers.rb6
-rw-r--r--spec/models/ci/trigger_request_spec.rb4
-rw-r--r--spec/requests/api/v3/triggers_spec.rb3
3 files changed, 6 insertions, 7 deletions
diff --git a/lib/api/v3/triggers.rb b/lib/api/v3/triggers.rb
index 497ccbe20c6..13cfb9fe38b 100644
--- a/lib/api/v3/triggers.rb
+++ b/lib/api/v3/triggers.rb
@@ -32,15 +32,13 @@ module API
render_api_error!(result[:message], result[:http_status])
else
pipeline = result[:pipeline]
- trigger_request = pipeline.trigger_request
+ trigger_request = Ci::TriggerRequest.find_by(commit_id: pipeline.id)
# We switched to Ci::PipelineVariable from Ci::TriggerRequest.variables.
# Ci::TriggerRequest doesn't save variables anymore.
# Here is copying Ci::PipelineVariable to Ci::TriggerRequest.variables for presenting the variables.
# The same endpoint in v4 API pressents Pipeline instead of TriggerRequest, so it doesn't need such a process.
- pipeline.variables.each do |variable|
- trigger_request.variables << { key: variable.key, value: variable.value }
- end
+ trigger_request.variables = params[:variables]
present trigger_request, with: ::API::V3::Entities::TriggerRequest
end
diff --git a/spec/models/ci/trigger_request_spec.rb b/spec/models/ci/trigger_request_spec.rb
index 32d6f835c73..7dcf3528f73 100644
--- a/spec/models/ci/trigger_request_spec.rb
+++ b/spec/models/ci/trigger_request_spec.rb
@@ -5,13 +5,13 @@ describe Ci::TriggerRequest do
it 'be invalid if saving a variable' do
trigger = build(:ci_trigger_request, variables: { TRIGGER_KEY_1: 'TRIGGER_VALUE_1' } )
- expect(trigger.valid?).to be_falsey
+ expect(trigger).not_to be_valid
end
it 'be valid if not saving a variable' do
trigger = build(:ci_trigger_request)
- expect(trigger.valid?).to be_truthy
+ expect(trigger).to be_valid
end
end
end
diff --git a/spec/requests/api/v3/triggers_spec.rb b/spec/requests/api/v3/triggers_spec.rb
index aca912dd427..7ccf387f2dc 100644
--- a/spec/requests/api/v3/triggers_spec.rb
+++ b/spec/requests/api/v3/triggers_spec.rb
@@ -80,7 +80,8 @@ describe API::V3::Triggers do
post v3_api("/projects/#{project.id}/trigger/builds"), options.merge(variables: variables, ref: 'master')
expect(response).to have_http_status(201)
pipeline.builds.reload
- expect(pipeline.builds.first.trigger_request.variables).to eq(variables)
+ expect(pipeline.variables.map { |v| { v.key => v.value } }.first).to eq(variables)
+ expect(json_response['variables']).to eq(variables)
end
end
end