Commit 3e75fd6c authored by Tomasz Maczukin's avatar Tomasz Maczukin

Improve specs for GitlabCiYamlProcessor

parent 7805eea3
...@@ -596,62 +596,117 @@ module Ci ...@@ -596,62 +596,117 @@ module Ci
end end
describe "Image and service handling" do describe "Image and service handling" do
it "returns image and service when defined" do context "when extended docker configuration is used" do
config = YAML.dump({ it "returns image and service when defined" do
image: { name: "ruby:2.1" }, config = YAML.dump({ image: { name: "ruby:2.1" },
services: ["mysql", { name: "docker:dind", alias: "docker" }], services: ["mysql", { name: "docker:dind", alias: "docker" }],
before_script: ["pwd"], before_script: ["pwd"],
rspec: { script: "rspec" } rspec: { script: "rspec" } })
})
config_processor = GitlabCiYamlProcessor.new(config, path) config_processor = GitlabCiYamlProcessor.new(config, path)
expect(config_processor.builds_for_stage_and_ref("test", "master").size).to eq(1) expect(config_processor.builds_for_stage_and_ref("test", "master").size).to eq(1)
expect(config_processor.builds_for_stage_and_ref("test", "master").first).to eq({ expect(config_processor.builds_for_stage_and_ref("test", "master").first).to eq({
stage: "test", stage: "test",
stage_idx: 1, stage_idx: 1,
name: "rspec", name: "rspec",
commands: "pwd\nrspec", commands: "pwd\nrspec",
coverage_regex: nil, coverage_regex: nil,
tag_list: [], tag_list: [],
options: { options: {
image: { name: "ruby:2.1" }, image: { name: "ruby:2.1" },
services: [{ name: "mysql" }, { name: "docker:dind", alias: "docker" }] services: [{ name: "mysql" }, { name: "docker:dind", alias: "docker" }]
}, },
allow_failure: false, allow_failure: false,
when: "on_success", when: "on_success",
environment: nil, environment: nil,
yaml_variables: [] yaml_variables: []
}) })
end
it "returns image and service when overridden for job" do
config = YAML.dump({ image: "ruby:2.1",
services: ["mysql"],
before_script: ["pwd"],
rspec: { image: { name: "ruby:2.5" },
services: [{ name: "postgresql", alias: "db-pg" }, "docker:dind"], script: "rspec" } })
config_processor = GitlabCiYamlProcessor.new(config, path)
expect(config_processor.builds_for_stage_and_ref("test", "master").size).to eq(1)
expect(config_processor.builds_for_stage_and_ref("test", "master").first).to eq({
stage: "test",
stage_idx: 1,
name: "rspec",
commands: "pwd\nrspec",
coverage_regex: nil,
tag_list: [],
options: {
image: { name: "ruby:2.5" },
services: [{ name: "postgresql", alias: "db-pg" }, { name: "docker:dind" }]
},
allow_failure: false,
when: "on_success",
environment: nil,
yaml_variables: []
})
end
end end
it "returns image and service when overridden for job" do context "when etended docker configuration is not used" do
config = YAML.dump({ it "returns image and service when defined" do
image: "ruby:2.1", config = YAML.dump({ image: "ruby:2.1",
services: ["mysql"], services: ["mysql", "docker:dind"],
before_script: ["pwd"], before_script: ["pwd"],
rspec: { image: "ruby:2.5", services: [{ name: "postgresql" }, "docker:dind"], script: "rspec" } rspec: { script: "rspec" } })
})
config_processor = GitlabCiYamlProcessor.new(config, path) config_processor = GitlabCiYamlProcessor.new(config, path)
expect(config_processor.builds_for_stage_and_ref("test", "master").size).to eq(1) expect(config_processor.builds_for_stage_and_ref("test", "master").size).to eq(1)
expect(config_processor.builds_for_stage_and_ref("test", "master").first).to eq({ expect(config_processor.builds_for_stage_and_ref("test", "master").first).to eq({
stage: "test", stage: "test",
stage_idx: 1, stage_idx: 1,
name: "rspec", name: "rspec",
commands: "pwd\nrspec", commands: "pwd\nrspec",
coverage_regex: nil, coverage_regex: nil,
tag_list: [], tag_list: [],
options: { options: {
image: { name: "ruby:2.5" }, image: { name: "ruby:2.1" },
services: [{ name: "postgresql" }, { name: "docker:dind" }] services: [{ name: "mysql" }, { name: "docker:dind" }]
}, },
allow_failure: false, allow_failure: false,
when: "on_success", when: "on_success",
environment: nil, environment: nil,
yaml_variables: [] yaml_variables: []
}) })
end
it "returns image and service when overridden for job" do
config = YAML.dump({ image: "ruby:2.1",
services: ["mysql"],
before_script: ["pwd"],
rspec: { image: "ruby:2.5", services: ["postgresql", "docker:dind"], script: "rspec" } })
config_processor = GitlabCiYamlProcessor.new(config, path)
expect(config_processor.builds_for_stage_and_ref("test", "master").size).to eq(1)
expect(config_processor.builds_for_stage_and_ref("test", "master").first).to eq({
stage: "test",
stage_idx: 1,
name: "rspec",
commands: "pwd\nrspec",
coverage_regex: nil,
tag_list: [],
options: {
image: { name: "ruby:2.5" },
services: [{ name: "postgresql" }, { name: "docker:dind" }]
},
allow_failure: false,
when: "on_success",
environment: nil,
yaml_variables: []
})
end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment