summaryrefslogtreecommitdiff
path: root/spec/lib/ci
diff options
context:
space:
mode:
authorFilip Krakowski <Filip.Krakowski@Uni-Duesseldorf.de>2017-06-02 19:02:56 +0200
committerShinya Maeda <gitlab.shinyamaeda@gmail.com>2017-06-08 00:34:58 +0900
commitecb54cddd164fbf83288d7903c4692df462bae5e (patch)
tree992908751c781851a8c8b63194132b3b2d59e6f7 /spec/lib/ci
parent8db63b26284d949000316a38676ef6fad970f657 (diff)
downloadgitlab-ce-ecb54cddd164fbf83288d7903c4692df462bae5e.tar.gz
Add all sources as special keywords for only and except
Diffstat (limited to 'spec/lib/ci')
-rw-r--r--spec/lib/ci/gitlab_ci_yaml_processor_spec.rb134
1 files changed, 63 insertions, 71 deletions
diff --git a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
index aa281301faf..79ed1366336 100644
--- a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
+++ b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
@@ -219,48 +219,44 @@ module Ci
expect(config_processor.builds_for_stage_and_ref(type, "deploy").size).to eq(0)
end
- it "returns builds if only has a triggers keyword specified and a trigger is provided" do
- config = YAML.dump({
- before_script: ["pwd"],
- rspec: { script: "rspec", type: type, only: ["triggers"] }
- })
-
- config_processor = GitlabCiYamlProcessor.new(config, path)
-
- expect(config_processor.builds_for_stage_and_ref(type, "deploy", false, 'trigger').size).to eq(1)
- end
-
- it "returns builds if only has a schedules keyword specified and a schedule is provided" do
- config = YAML.dump({
- before_script: ["pwd"],
- rspec: { script: "rspec", type: type, only: ["schedules"] }
- })
-
- config_processor = GitlabCiYamlProcessor.new(config, path)
-
- expect(config_processor.builds_for_stage_and_ref(type, "deploy", false, 'schedule').size).to eq(1)
+ it "returns builds if only has special keywords specified and source matches" do
+ possibilities = [{keyword: 'pushes', source: 'push'},
+ {keyword: 'web', source: 'web'},
+ {keyword: 'triggers', source: 'trigger'},
+ {keyword: 'schedules', source: 'schedule'},
+ {keyword: 'api', source: 'api'},
+ {keyword: 'external', source: 'external'}]
+
+ possibilities.each do |possibility|
+ config = YAML.dump({
+ before_script: ["pwd"],
+ rspec: { script: "rspec", type: type, only: [possibility[:keyword]] }
+ })
+
+ config_processor = GitlabCiYamlProcessor.new(config, path)
+
+ expect(config_processor.builds_for_stage_and_ref(type, "deploy", false, possibility[:source]).size).to eq(1)
+ end
end
- it "does not return builds if only has a triggers keyword specified and no trigger is provided" do
- config = YAML.dump({
- before_script: ["pwd"],
- rspec: { script: "rspec", type: type, only: ["triggers"] }
- })
-
- config_processor = GitlabCiYamlProcessor.new(config, path)
-
- expect(config_processor.builds_for_stage_and_ref(type, "deploy").size).to eq(0)
- end
+ it "does not return builds if only has special keywords specified and source doesn't match" do
+ possibilities = [{keyword: 'pushes', source: 'web'},
+ {keyword: 'web', source: 'push'},
+ {keyword: 'triggers', source: 'schedule'},
+ {keyword: 'schedules', source: 'external'},
+ {keyword: 'api', source: 'trigger'},
+ {keyword: 'external', source: 'api'}]
- it "does not return builds if only has a schedules keyword specified and no schedule is provided" do
- config = YAML.dump({
- before_script: ["pwd"],
- rspec: { script: "rspec", type: type, only: ["schedules"] }
- })
+ possibilities.each do |possibility|
+ config = YAML.dump({
+ before_script: ["pwd"],
+ rspec: { script: "rspec", type: type, only: [possibility[:keyword]] }
+ })
- config_processor = GitlabCiYamlProcessor.new(config, path)
+ config_processor = GitlabCiYamlProcessor.new(config, path)
- expect(config_processor.builds_for_stage_and_ref(type, "deploy").size).to eq(0)
+ expect(config_processor.builds_for_stage_and_ref(type, "deploy", false, possibility[:source]).size).to eq(0)
+ end
end
it "returns builds if only has current repository path" do
@@ -397,48 +393,44 @@ module Ci
expect(config_processor.builds_for_stage_and_ref(type, "deploy").size).to eq(1)
end
- it "does not return builds if except has a triggers keyword specified and a trigger is provided" do
- config = YAML.dump({
- before_script: ["pwd"],
- rspec: { script: "rspec", type: type, except: ["triggers"] }
- })
-
- config_processor = GitlabCiYamlProcessor.new(config, path)
-
- expect(config_processor.builds_for_stage_and_ref(type, "deploy", false, 'trigger').size).to eq(0)
- end
+ it "does not return builds if except has special keywords specified and source matches" do
+ possibilities = [{keyword: 'pushes', source: 'push'},
+ {keyword: 'web', source: 'web'},
+ {keyword: 'triggers', source: 'trigger'},
+ {keyword: 'schedules', source: 'schedule'},
+ {keyword: 'api', source: 'api'},
+ {keyword: 'external', source: 'external'}]
- it "does not return builds if except has a schedules keyword specified and a schedule is provided" do
- config = YAML.dump({
- before_script: ["pwd"],
- rspec: { script: "rspec", type: type, except: ["schedules"] }
- })
+ possibilities.each do |possibility|
+ config = YAML.dump({
+ before_script: ["pwd"],
+ rspec: { script: "rspec", type: type, except: [possibility[:keyword]] }
+ })
- config_processor = GitlabCiYamlProcessor.new(config, path)
+ config_processor = GitlabCiYamlProcessor.new(config, path)
- expect(config_processor.builds_for_stage_and_ref(type, "deploy", false, 'schedule').size).to eq(0)
+ expect(config_processor.builds_for_stage_and_ref(type, "deploy", false, possibility[:source]).size).to eq(0)
+ end
end
- it "returns builds if except has a triggers keyword specified and no trigger is provided" do
- config = YAML.dump({
- before_script: ["pwd"],
- rspec: { script: "rspec", type: type, except: ["triggers"] }
- })
+ it "returns builds if except has special keywords specified and source doesn't match" do
+ possibilities = [{keyword: 'pushes', source: 'web'},
+ {keyword: 'web', source: 'push'},
+ {keyword: 'triggers', source: 'schedule'},
+ {keyword: 'schedules', source: 'external'},
+ {keyword: 'api', source: 'trigger'},
+ {keyword: 'external', source: 'api'}]
- config_processor = GitlabCiYamlProcessor.new(config, path)
+ possibilities.each do |possibility|
+ config = YAML.dump({
+ before_script: ["pwd"],
+ rspec: { script: "rspec", type: type, only: [possibility[:keyword]] }
+ })
- expect(config_processor.builds_for_stage_and_ref(type, "deploy").size).to eq(1)
- end
+ config_processor = GitlabCiYamlProcessor.new(config, path)
- it "returns builds if except has a schedules keyword specified and no schedule is provided" do
- config = YAML.dump({
- before_script: ["pwd"],
- rspec: { script: "rspec", type: type, except: ["schedules"] }
- })
-
- config_processor = GitlabCiYamlProcessor.new(config, path)
-
- expect(config_processor.builds_for_stage_and_ref(type, "deploy").size).to eq(1)
+ expect(config_processor.builds_for_stage_and_ref(type, "deploy", false, possibility[:source]).size).to eq(1)
+ end
end
it "does not return builds if except has current repository path" do