Skip to content
Snippets Groups Projects
Commit 0711d9ad authored by Kamil Trzcinski's avatar Kamil Trzcinski
Browse files

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

parent 8efc8841
No related branches found
No related tags found
No related merge requests found
Loading
@@ -52,7 +52,7 @@ module Ci
Loading
@@ -52,7 +52,7 @@ module Ci
# when old API will be removed (planned for August 2017). # when old API will be removed (planned for August 2017).
model.options.dup.tap do |options| model.options.dup.tap do |options|
options[:image] = options[:image][:name] if options[:image].is_a?(Hash) 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) if service.is_a?(Hash)
service[:name] service[:name]
else else
Loading
Loading
Loading
@@ -69,6 +69,72 @@ describe Ci::API::Builds do
Loading
@@ -69,6 +69,72 @@ describe Ci::API::Builds do
end end
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 context 'when there is a pending build' do
it 'starts a build' do it 'starts a build' do
register_builds info: { platform: :darwin } register_builds info: { platform: :darwin }
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment