Commit b92d5135 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Merge branch 'fix-old-ci-api' into 'master'

Fix support for old CI API when image or services are not specified

Closes #35421

See merge request !13023
parents d60b09d9 0711d9ad
......@@ -52,7 +52,7 @@ module Ci
# when old API will be removed (planned for August 2017).
model.options.dup.tap do |options|
options[:image] = options[:image][:name] if options[:image].is_a?(Hash)
options[:services].map! do |service|
options[:services]&.map! do |service|
if service.is_a?(Hash)
service[:name]
else
......
......@@ -69,6 +69,72 @@ describe Ci::API::Builds do
end
end
context 'when an old image syntax is used' do
before do
build.update!(options: { image: 'codeclimate' })
end
it 'starts a build' do
register_builds info: { platform: :darwin }
expect(response).to have_http_status(201)
expect(json_response["options"]).to eq({ "image" => "codeclimate" })
end
end
context 'when a new image syntax is used' do
before do
build.update!(options: { image: { name: 'codeclimate' } })
end
it 'starts a build' do
register_builds info: { platform: :darwin }
expect(response).to have_http_status(201)
expect(json_response["options"]).to eq({ "image" => "codeclimate" })
end
end
context 'when an old service syntax is used' do
before do
build.update!(options: { services: ['mysql'] })
end
it 'starts a build' do
register_builds info: { platform: :darwin }
expect(response).to have_http_status(201)
expect(json_response["options"]).to eq({ "services" => ["mysql"] })
end
end
context 'when a new service syntax is used' do
before do
build.update!(options: { services: [name: 'mysql'] })
end
it 'starts a build' do
register_builds info: { platform: :darwin }
expect(response).to have_http_status(201)
expect(json_response["options"]).to eq({ "services" => ["mysql"] })
end
end
context 'when no image or service is defined' do
before do
build.update!(options: {})
end
it 'starts a build' do
register_builds info: { platform: :darwin }
expect(response).to have_http_status(201)
expect(json_response["options"]).to be_empty
end
end
context 'when there is a pending build' do
it 'starts a build' do
register_builds info: { platform: :darwin }
......
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