summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-04-08 11:02:26 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-04-18 13:17:47 +0200
commita1363d39c6fe79d830dbce468c02880d2a5d7996 (patch)
tree62dff2b35c5032f896ab8414f21982e200fa49ca /spec
parente32fc7567be2ff2cc995648e675de18133f8a066 (diff)
downloadgitlab-ce-a1363d39c6fe79d830dbce468c02880d2a5d7996.tar.gz
Add `variables` keyword to job in CI config YAML
Diffstat (limited to 'spec')
-rw-r--r--spec/lib/ci/gitlab_ci_yaml_processor_spec.rb44
-rw-r--r--spec/models/build_spec.rb16
2 files changed, 48 insertions, 12 deletions
diff --git a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
index dcb8a3451bd..a3a0d06e149 100644
--- a/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
+++ b/spec/lib/ci/gitlab_ci_yaml_processor_spec.rb
@@ -346,19 +346,39 @@ module Ci
end
describe "Variables" do
- it "returns variables when defined" do
- variables = {
- var1: "value1",
- var2: "value2",
- }
- config = YAML.dump({
- variables: variables,
- before_script: ["pwd"],
- rspec: { script: "rspec" }
- })
+ context 'when global variables are defined' do
+ it 'returns variables' do
+ variables = {
+ var1: "value1",
+ var2: "value2",
+ }
+ config = YAML.dump({
+ variables: variables,
+ before_script: ["pwd"],
+ rspec: { script: "rspec" }
+ })
- config_processor = GitlabCiYamlProcessor.new(config, path)
- expect(config_processor.variables).to eq(variables)
+ config_processor = GitlabCiYamlProcessor.new(config, path)
+ expect(config_processor.variables).to eq(variables)
+ end
+ end
+
+ context 'when job variables are defined' do
+ let(:job_variables) { { KEY1: 'value1', SOME_KEY_2: 'value2'} }
+ let(:yaml_config) do
+ YAML.dump(
+ { before_script: ['pwd'],
+ rspec: {
+ variables: job_variables,
+ script: 'rspec' }
+ })
+ end
+
+ it 'appends job variable to job attributes' do
+ config = GitlabCiYamlProcessor.new(yaml_config, path)
+
+ expect(config.builds.first[:options][:variables]).to eq job_variables
+ end
end
end
diff --git a/spec/models/build_spec.rb b/spec/models/build_spec.rb
index b7457808040..ee44a4c5f12 100644
--- a/spec/models/build_spec.rb
+++ b/spec/models/build_spec.rb
@@ -238,6 +238,22 @@ describe Ci::Build, models: true do
it { is_expected.to eq(predefined_variables + predefined_trigger_variable + yaml_variables + secure_variables + trigger_variables) }
end
+
+ context 'when job variables are defined' do
+ before { build.update_attribute(:options, variables: job_variables) }
+
+ context 'when job variables are unique' do
+ let(:job_variables) { { KEY1: 'value1', KEY2: 'value2' } }
+ let(:resulting_variables) do
+ [{ key: :KEY1, value: 'value1', public: true },
+ { key: :KEY2, value: 'value2', public: true }]
+ end
+
+ it 'includes job variables' do
+ expect(subject).to include(*resulting_variables)
+ end
+ end
+ end
end
end
end