diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2017-07-22 17:18:18 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2017-07-22 17:18:18 +0000 |
commit | b92d5135d8522e1370636799d74b51f9a37d0b2f (patch) | |
tree | 7925cb3efebdbe8c7053f3e3757edade37f52371 /spec | |
parent | d60b09d9312cd42e2c0ab784cc0b9d92b4d4f5c6 (diff) | |
parent | 0711d9adfc9e402c7763ce1ce914bc672165eb90 (diff) | |
download | gitlab-ce-b92d5135d8522e1370636799d74b51f9a37d0b2f.tar.gz |
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
Diffstat (limited to 'spec')
-rw-r--r-- | spec/requests/ci/api/builds_spec.rb | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/spec/requests/ci/api/builds_spec.rb b/spec/requests/ci/api/builds_spec.rb index c969d08d0dd..49e815ee16c 100644 --- a/spec/requests/ci/api/builds_spec.rb +++ b/spec/requests/ci/api/builds_spec.rb @@ -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 } |