diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 14:18:50 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 14:18:50 +0300 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /spec/controllers/projects/environments_controller_spec.rb | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) |
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'spec/controllers/projects/environments_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/environments_controller_spec.rb | 59 |
1 files changed, 58 insertions, 1 deletions
diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb index 56fff2771ec..cca4b597f4c 100644 --- a/spec/controllers/projects/environments_controller_spec.rb +++ b/spec/controllers/projects/environments_controller_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Projects::EnvironmentsController do +RSpec.describe Projects::EnvironmentsController do include MetricsDashboardHelpers let_it_be(:project) { create(:project) } @@ -354,6 +354,19 @@ describe Projects::EnvironmentsController do expect(response).to redirect_to(environment_metrics_path(environment)) end + context 'with anonymous user and public dashboard visibility' do + let(:project) { create(:project, :public) } + let(:user) { create(:user) } + + it 'redirects successfully' do + project.project_feature.update!(metrics_dashboard_access_level: ProjectFeature::ENABLED) + + get :metrics_redirect, params: { namespace_id: project.namespace, project_id: project } + + expect(response).to redirect_to(environment_metrics_path(environment)) + end + end + context 'when there are no environments' do let(:environment) { } @@ -422,6 +435,19 @@ describe Projects::EnvironmentsController do get :metrics, params: environment_params end end + + context 'with anonymous user and public dashboard visibility' do + let(:project) { create(:project, :public) } + let(:user) { create(:user) } + + it 'returns success' do + project.project_feature.update!(metrics_dashboard_access_level: ProjectFeature::ENABLED) + + get :metrics, params: environment_params + + expect(response).to have_gitlab_http_status(:ok) + end + end end describe 'GET #additional_metrics' do @@ -497,6 +523,26 @@ describe Projects::EnvironmentsController do get :metrics, params: environment_params end end + + context 'with anonymous user and public dashboard visibility' do + let(:project) { create(:project, :public) } + let(:user) { create(:user) } + + it 'does not fail' do + allow(environment) + .to receive(:additional_metrics) + .and_return({ + success: true, + data: {}, + last_update: 42 + }) + project.project_feature.update!(metrics_dashboard_access_level: ProjectFeature::ENABLED) + + additional_metrics(window_params) + + expect(response).to have_gitlab_http_status(:ok) + end + end end describe 'GET #metrics_dashboard' do @@ -673,6 +719,17 @@ describe Projects::EnvironmentsController do it_behaves_like 'dashboard can be specified' it_behaves_like 'dashboard can be embedded' + context 'with anonymous user and public dashboard visibility' do + let(:project) { create(:project, :public) } + let(:user) { create(:user) } + + before do + project.project_feature.update!(metrics_dashboard_access_level: ProjectFeature::ENABLED) + end + + it_behaves_like 'the default dashboard' + end + context 'permissions' do before do allow(controller).to receive(:can?).and_return true |