fix yet other specs

This commit is contained in:
Micaël Bergeron 2018-03-07 13:27:49 -05:00
parent a85948862e
commit 2bf29a0c81
3 changed files with 30 additions and 22 deletions

View File

@ -210,13 +210,13 @@ describe Ci::Build do
subject { build.downloadable_single_artifacts_file? }
context 'artifacts are stored locally' do
let(:store) { ObjectStoreUploader::LOCAL_STORE }
let(:store) { ObjectStorage::Store::LOCAL }
it { is_expected.to be_truthy }
end
context 'artifacts are stored remotely' do
let(:store) { ObjectStoreUploader::REMOTE_STORE }
let(:store) { ObjectStorage::Store::REMOTE }
before do
stub_artifacts_object_storage

View File

@ -38,7 +38,7 @@ describe Ci::JobArtifact do
end
it 'schedules the model for migration' do
expect(ObjectStorageUploadWorker).to receive(:perform_async).with('JobArtifactUploader', described_class.name, :file, kind_of(Numeric))
expect(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async).with('JobArtifactUploader', described_class.name, :file, kind_of(Numeric))
subject
end
@ -50,7 +50,7 @@ describe Ci::JobArtifact do
end
it 'schedules the model for migration' do
expect(ObjectStorageUploadWorker).not_to receive(:perform_async)
expect(ObjectStorage::BackgroundMoveWorker).not_to receive(:perform_async)
subject
end

View File

@ -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