summaryrefslogtreecommitdiff
path: root/spec/controllers/projects/ci
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-06-09 18:08:28 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-06-09 18:08:28 +0000
commit3d0474695407d24d49bb94f29a182739ee35e1f8 (patch)
tree815d0561821907911394834862f60d5386a54546 /spec/controllers/projects/ci
parent6ff3eb60e3ddbfe7450b760efe57112ddacbdb69 (diff)
downloadgitlab-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.rb111
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