diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-01-13 09:56:05 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-01-14 12:48:16 +0100 |
commit | 0b946029a1fb429db39fbec0cddccf40f7e2aa08 (patch) | |
tree | 361c3e02ce3199700d693fdead687331ee3be510 /spec/requests | |
parent | 6d7a77074fcdd57ccdc33e3cb39146da4afdc0f4 (diff) | |
download | gitlab-ce-0b946029a1fb429db39fbec0cddccf40f7e2aa08.tar.gz |
Update build artifacts API
We do not want to allow runners to upload a metadata file. This needs to
be generated by Workhorse only.
Diffstat (limited to 'spec/requests')
-rw-r--r-- | spec/requests/ci/api/builds_spec.rb | 48 |
1 files changed, 35 insertions, 13 deletions
diff --git a/spec/requests/ci/api/builds_spec.rb b/spec/requests/ci/api/builds_spec.rb index 4eb5f2e6828..f47ffb00e33 100644 --- a/spec/requests/ci/api/builds_spec.rb +++ b/spec/requests/ci/api/builds_spec.rb @@ -210,27 +210,49 @@ describe Ci::API::API do end end - context "should post artifacts metadata" do + context 'should post artifacts file and metadata file' do let!(:artifacts) { file_upload } let!(:metadata) { file_upload2 } + let(:stored_artifacts_file) { build.reload.artifacts_file.file } + let(:stored_metadata_file) { build.reload.artifacts_metadata.file } + before do build.run! + post(post_url, post_data, headers_with_token) + end - post_data = { - 'file.path' => artifacts.path, - 'file.name' => artifacts.original_filename, - 'metadata.path' => metadata.path, - 'metadata.name' => metadata.original_filename - } - - post post_url, post_data, headers_with_token + context 'post data accelerated by workhorse is correct' do + let(:post_data) do + { 'file.path' => artifacts.path, + 'file.name' => artifacts.original_filename, + 'metadata.path' => metadata.path, + 'metadata.name' => metadata.original_filename } + end + + it 'responds with valid status' do + expect(response.status).to eq(201) + end + + it 'stores artifacts and artifacts metadata' do + expect(stored_artifacts_file.original_filename).to eq(artifacts.original_filename) + expect(stored_metadata_file.original_filename).to eq(metadata.original_filename) + end end - it 'stores artifacts and artifacts metadata' do - expect(response.status).to eq(201) - expect(json_response['artifacts_file']['filename']).to eq(artifacts.original_filename) - expect(json_response['artifacts_metadata']['filename']).to eq(metadata.original_filename) + context 'runner sends metadata file' do + let(:post_data) do + { 'file' => artifacts, 'metadata' => metadata } + end + + it 'is expected to respond with forbbiden' do + expect(response.status).to eq(403) + end + + it 'does not store artifacts or metadata' do + expect(stored_artifacts_file).to be_nil + expect(stored_metadata_file).to be_nil + end end end |