diff options
author | Grzegorz Bizon <grzegorz.bizon@ntsn.pl> | 2016-02-02 15:51:48 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-02-04 10:13:58 +0100 |
commit | 020623f3bbdb25c07e31985f0fe072988ba0eff2 (patch) | |
tree | d4a215cf7faaf6404964fdfed05d85f44bb5ee9a /spec/requests | |
parent | 3b080be3e0de27d418423917a52c6c5199968192 (diff) | |
download | gitlab-ce-020623f3bbdb25c07e31985f0fe072988ba0eff2.tar.gz |
Improve CI API specs related to operations on build
Conflicts:
spec/factories/ci/builds.rb
Diffstat (limited to 'spec/requests')
-rw-r--r-- | spec/requests/ci/api/builds_spec.rb | 55 |
1 files changed, 34 insertions, 21 deletions
diff --git a/spec/requests/ci/api/builds_spec.rb b/spec/requests/ci/api/builds_spec.rb index 244947762dd..e1b6f981538 100644 --- a/spec/requests/ci/api/builds_spec.rb +++ b/spec/requests/ci/api/builds_spec.rb @@ -151,8 +151,8 @@ describe Ci::API::API do context "Artifacts" do let(:file_upload) { fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') } let(:file_upload2) { fixture_file_upload(Rails.root + 'spec/fixtures/dk.png', 'image/gif') } - let(:commit) { FactoryGirl.create(:ci_commit, project: project) } - let(:build) { FactoryGirl.create(:ci_build, commit: commit, runner_id: runner.id) } + let(:commit) { create(:ci_commit, project: project) } + let(:build) { create(:ci_build, commit: commit, runner_id: runner.id) } let(:authorize_url) { ci_api("/builds/#{build.id}/artifacts/authorize") } let(:post_url) { ci_api("/builds/#{build.id}/artifacts") } let(:delete_url) { ci_api("/builds/#{build.id}/artifacts") } @@ -349,33 +349,46 @@ describe Ci::API::API do end end - describe "DELETE /builds/:id/artifacts" do - before do - build.run! - post delete_url, token: build.token, file: file_upload - end + describe 'DELETE /builds/:id/artifacts' do + let(:build) { create(:ci_build, :artifacts) } + before { delete delete_url, token: build.token } - it "should delete artifact build" do - build.success - delete delete_url, token: build.token + it 'should respond valid status' do expect(response.status).to eq(200) end - end - describe "GET /builds/:id/artifacts" do - before do - build.run! + it 'should remove artifacts file' do + expect(build.artifacts_file.exists?).to be_falsy end - it "should download artifact" do - build.update_attributes(artifacts_file: file_upload) - get get_url, token: build.token - expect(response.status).to eq(200) + it 'should remove artifacts metadata' do + expect(build.artifacts_metadata.exists?).to be_falsy + end + end + + describe 'GET /builds/:id/artifacts' do + before { get get_url, token: build.token } + + context 'build has artifacts' do + let(:build) { create(:ci_build, :artifacts) } + let(:download_headers) do + { 'Content-Transfer-Encoding'=>'binary', + 'Content-Disposition'=>'attachment; filename=ci_build_artifacts.zip' } + end + + it 'should respond with valid status' do + expect(response.status).to eq(200) + end + + it 'should download artifact' do + expect(response.headers).to include download_headers + end end - it "should fail to download if no artifact uploaded" do - get get_url, token: build.token - expect(response.status).to eq(404) + context 'build does not has artifacts' do + it 'should respond with not found' do + expect(response.status).to eq(404) + end end end end |