Rails5: fix artifacts controller download spec

Rails5 has params[:file_type] as '' if file_type is included as nil
in the request
This commit is contained in:
Jasper Maes 2018-10-04 21:46:03 +02:00
parent d031e0e88f
commit cf0a61c202
2 changed files with 14 additions and 6 deletions

View File

@ -0,0 +1,6 @@
---
title: 'Rails5: fix artifacts controller download spec Rails5 has params[:file_type]
as '''' if file_type is included as nil in the request'
merge_request: 22123
author: Jasper Maes
type: other

View File

@ -19,15 +19,17 @@ describe Projects::ArtifactsController do
end
describe 'GET download' do
subject { get :download, namespace_id: project.namespace, project_id: project, job_id: job, file_type: file_type }
def download_artifact(extra_params = {})
params = { namespace_id: project.namespace, project_id: project, job_id: job }.merge(extra_params)
get :download, params
end
context 'when no file type is supplied' do
let(:file_type) { nil }
it 'sends the artifacts file' do
expect(controller).to receive(:send_file).with(job.artifacts_file.path, hash_including(disposition: 'attachment')).and_call_original
subject
download_artifact
end
end
@ -36,7 +38,7 @@ describe Projects::ArtifactsController do
let(:file_type) { 'invalid' }
it 'returns 404' do
subject
download_artifact(file_type: file_type)
expect(response).to have_gitlab_http_status(404)
end
@ -52,7 +54,7 @@ describe Projects::ArtifactsController do
it 'sends the codequality report' do
expect(controller).to receive(:send_file).with(job.job_artifacts_codequality.file.path, hash_including(disposition: 'attachment')).and_call_original
subject
download_artifact(file_type: file_type)
end
end
end