summaryrefslogtreecommitdiff
path: root/spec/requests
diff options
context:
space:
mode:
authorMicaël Bergeron <mbergeron@gitlab.com>2018-03-07 13:27:49 -0500
committerMicaël Bergeron <mbergeron@gitlab.com>2018-03-07 13:27:49 -0500
commit2bf29a0c81a9adaf464174635159d4e65f30c7a2 (patch)
tree5b58eb3f567470901b2c79a79afd1859b3f06ffd /spec/requests
parenta85948862ebadb02dbe93d5ce74ba00f32d9a0c0 (diff)
downloadgitlab-ce-2bf29a0c81a9adaf464174635159d4e65f30c7a2.tar.gz
fix yet other specs
Diffstat (limited to 'spec/requests')
-rw-r--r--spec/requests/api/jobs_spec.rb44
1 files changed, 26 insertions, 18 deletions
diff --git a/spec/requests/api/jobs_spec.rb b/spec/requests/api/jobs_spec.rb
index ae0c377682e..62ed9fd00a1 100644
--- a/spec/requests/api/jobs_spec.rb
+++ b/spec/requests/api/jobs_spec.rb
@@ -19,12 +19,8 @@ describe API::Jobs do
let(:api_user) { user }
let(:reporter) { create(:project_member, :reporter, project: project).user }
let(:guest) { create(:project_member, :guest, project: project).user }
- let(:cross_project_pipeline_enabled) { true }
- let(:object_storage_enabled) { true }
before do
- stub_licensed_features(cross_project_pipelines: cross_project_pipeline_enabled,
- object_storage: object_storage_enabled)
project.add_developer(user)
end
@@ -326,10 +322,6 @@ describe API::Jobs do
end
context 'normal authentication' do
- before do
- stub_artifacts_object_storage
- end
-
context 'job with artifacts' do
context 'when artifacts are stored locally' do
let(:job) { create(:ci_build, :artifacts, pipeline: pipeline) }
@@ -342,14 +334,20 @@ describe API::Jobs do
it_behaves_like 'downloads artifact'
end
- it 'returns specific job artifacts' do
- expect(response).to have_http_status(200)
- expect(response.headers).to include(download_headers)
- expect(response.body).to match_file(job.artifacts_file.file.file)
+ context 'unauthorized user' do
+ let(:api_user) { nil }
+
+ it 'does not return specific job artifacts' do
+ expect(response).to have_gitlab_http_status(404)
+ end
end
end
context 'when artifacts are stored remotely' do
+ before do
+ stub_artifacts_object_storage
+ end
+
let(:job) { create(:ci_build, pipeline: pipeline) }
let!(:artifact) { create(:ci_job_artifact, :archive, :remote_store, job: job) }
@@ -359,15 +357,25 @@ describe API::Jobs do
get api("/projects/#{project.id}/jobs/#{job.id}/artifacts", api_user)
end
- it 'does not return specific job artifacts' do
- expect(response).to have_http_status(401)
+ context 'authorized user' do
+ it 'returns the file remote URL' do
+ expect(response).to redirect_to(artifact.file.url)
+ end
+ end
+
+ context 'unauthorized user' do
+ let(:api_user) { nil }
+
+ it 'does not return specific job artifacts' do
+ expect(response).to have_gitlab_http_status(404)
+ end
end
end
it 'does not return job artifacts if not uploaded' do
get api("/projects/#{project.id}/jobs/#{job.id}/artifacts", api_user)
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -378,7 +386,7 @@ describe API::Jobs do
let(:job) { create(:ci_build, :artifacts, pipeline: pipeline, user: api_user) }
before do
- stub_artifacts_object_storage(licensed: :skip)
+ stub_artifacts_object_storage
job.success
end
@@ -442,7 +450,7 @@ describe API::Jobs do
"attachment; filename=#{job.artifacts_file.filename}" }
end
- it { expect(response).to have_http_status(200) }
+ it { expect(response).to have_http_status(:ok) }
it { expect(response.headers).to include(download_headers) }
end
@@ -457,7 +465,7 @@ describe API::Jobs do
end
it 'returns location redirect' do
- expect(response).to have_http_status(302)
+ expect(response).to have_http_status(:found)
end
end
end