diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-09 18:08:28 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-09 18:08:28 +0000 |
commit | 3d0474695407d24d49bb94f29a182739ee35e1f8 (patch) | |
tree | 815d0561821907911394834862f60d5386a54546 /spec/controllers/projects/ci | |
parent | 6ff3eb60e3ddbfe7450b760efe57112ddacbdb69 (diff) | |
download | gitlab-ce-3d0474695407d24d49bb94f29a182739ee35e1f8.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/controllers/projects/ci')
-rw-r--r-- | spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb | 111 |
1 files changed, 86 insertions, 25 deletions
diff --git a/spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb b/spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb index c0ce934a0f1..252ad6ec9c4 100644 --- a/spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb +++ b/spec/controllers/projects/ci/daily_build_group_report_results_controller_spec.rb @@ -14,9 +14,10 @@ RSpec.describe Projects::Ci::DailyBuildGroupReportResultsController do before do create_daily_coverage('rspec', 79.0, '2020-03-09') + create_daily_coverage('rspec', 77.0, '2020-03-08') create_daily_coverage('karma', 81.0, '2019-12-10') - create_daily_coverage('rspec', 67.0, '2019-12-09') - create_daily_coverage('karma', 71.0, '2019-12-09') + create_daily_coverage('minitest', 67.0, '2019-12-09') + create_daily_coverage('mocha', 71.0, '2019-12-09') sign_in(user) @@ -30,51 +31,111 @@ RSpec.describe Projects::Ci::DailyBuildGroupReportResultsController do param_type: param_type, start_date: start_date, end_date: end_date, - format: :csv + format: format } end - it 'serves the results in CSV' do - expect(response).to have_gitlab_http_status(:ok) - expect(response.headers['Content-Type']).to eq('text/csv; charset=utf-8') + shared_examples_for 'validating param_type' do + context 'when given param_type is invalid' do + let(:param_type) { 'something_else' } - expect(csv_response).to eq([ - %w[date group_name coverage], - ['2020-03-09', 'rspec', '79.0'], - ['2019-12-10', 'karma', '81.0'] - ]) + it 'responds with 422 error' do + expect(response).to have_gitlab_http_status(:unprocessable_entity) + end + end end - context 'when given date range spans more than 90 days' do - let(:start_date) { '2019-12-09' } - let(:end_date) { '2020-03-09' } + shared_examples_for 'ensuring policy' do + context 'when user is not allowed to read build report results' do + let(:allowed_to_read) { false } + + it 'responds with 404 error' do + expect(response).to have_gitlab_http_status(:not_found) + end + end + end - it 'limits the result to 90 days from the given start_date' do + context 'when format is CSV' do + let(:format) { :csv } + + it 'serves the results in CSV' do expect(response).to have_gitlab_http_status(:ok) expect(response.headers['Content-Type']).to eq('text/csv; charset=utf-8') expect(csv_response).to eq([ %w[date group_name coverage], ['2020-03-09', 'rspec', '79.0'], + ['2020-03-08', 'rspec', '77.0'], ['2019-12-10', 'karma', '81.0'] ]) end - end - - context 'when given param_type is invalid' do - let(:param_type) { 'something_else' } - it 'responds with 422 error' do - expect(response).to have_gitlab_http_status(:unprocessable_entity) + context 'when given date range spans more than 90 days' do + let(:start_date) { '2019-12-09' } + let(:end_date) { '2020-03-09' } + + it 'limits the result to 90 days from the given start_date' do + expect(csv_response).to eq([ + %w[date group_name coverage], + ['2020-03-09', 'rspec', '79.0'], + ['2020-03-08', 'rspec', '77.0'], + ['2019-12-10', 'karma', '81.0'] + ]) + end end + + it_behaves_like 'validating param_type' + it_behaves_like 'ensuring policy' end - context 'when user is not allowed to read build report results' do - let(:allowed_to_read) { false } + context 'when format is JSON' do + let(:format) { :json } + + it 'serves the results in JSON' do + expect(response).to have_gitlab_http_status(:ok) - it 'responds with 404 error' do - expect(response).to have_gitlab_http_status(:not_found) + expect(json_response).to eq([ + { + 'group_name' => 'rspec', + 'data' => [ + { 'date' => '2020-03-09', 'coverage' => 79.0 }, + { 'date' => '2020-03-08', 'coverage' => 77.0 } + ] + }, + { + 'group_name' => 'karma', + 'data' => [ + { 'date' => '2019-12-10', 'coverage' => 81.0 } + ] + } + ]) end + + context 'when given date range spans more than 90 days' do + let(:start_date) { '2019-12-09' } + let(:end_date) { '2020-03-09' } + + it 'limits the result to 90 days from the given start_date' do + expect(json_response).to eq([ + { + 'group_name' => 'rspec', + 'data' => [ + { 'date' => '2020-03-09', 'coverage' => 79.0 }, + { 'date' => '2020-03-08', 'coverage' => 77.0 } + ] + }, + { + 'group_name' => 'karma', + 'data' => [ + { 'date' => '2019-12-10', 'coverage' => 81.0 } + ] + } + ]) + end + end + + it_behaves_like 'validating param_type' + it_behaves_like 'ensuring policy' end end |