From 34e72e54129090eaae6e045890fcdf8b5ad3f629 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 21 May 2020 18:08:27 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- .../projects/environments_controller_spec.rb | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'spec/controllers/projects/environments_controller_spec.rb') diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb index 56fff2771ec..cd4896ede43 100644 --- a/spec/controllers/projects/environments_controller_spec.rb +++ b/spec/controllers/projects/environments_controller_spec.rb @@ -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 -- cgit v1.2.1