summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/push_options_spec.rb
diff options
context:
space:
mode:
authorLuke Duncalfe <lduncalfe@eml.cc>2019-04-05 17:19:30 +1300
committerLuke Duncalfe <lduncalfe@eml.cc>2019-04-09 10:03:26 +1200
commit1883e320eafa02b332a16eec658f65c4a28def83 (patch)
tree6e231cba20ae8fda69f328e0ede27452fca9cf14 /spec/lib/gitlab/push_options_spec.rb
parent867ac4d1f733254de1b4c44f314e585e6b2720e8 (diff)
downloadgitlab-ce-1883e320eafa02b332a16eec658f65c4a28def83.tar.gz
Use Gitlab::PushOptions for `ci.skip` push option
Previously the raw push option Array was sent to Pipeline::Chain::Skip. This commit updates this class (and the chain of classes that pass the push option parameters from the API internal `post_receive` endpoint to that class) to treat push options as a Hash of options parsed by GitLab::PushOptions. The GitLab::PushOptions class takes options like this: -o ci.skip -o merge_request.create -o merge_request.target=branch and turns them into a Hash like this: { ci: { skip: true }, merge_request: { create: true, target: 'branch' } } This now how Pipeline::Chain::Skip is determining if the `ci.skip` push option was used.
Diffstat (limited to 'spec/lib/gitlab/push_options_spec.rb')
-rw-r--r--spec/lib/gitlab/push_options_spec.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/spec/lib/gitlab/push_options_spec.rb b/spec/lib/gitlab/push_options_spec.rb
index 68b64863c21..fc9e421bea6 100644
--- a/spec/lib/gitlab/push_options_spec.rb
+++ b/spec/lib/gitlab/push_options_spec.rb
@@ -39,6 +39,18 @@ describe Gitlab::PushOptions do
end
end
+ describe '#as_json' do
+ it 'returns all options' do
+ options = described_class.new(['merge_request.target=value'])
+
+ expect(options.as_json).to include(
+ merge_request: {
+ target: 'value'
+ }
+ )
+ end
+ end
+
it 'can parse multiple push options' do
options = described_class.new([
'merge_request.create',