diff options
Diffstat (limited to 'spec/requests/projects/metrics_dashboard_spec.rb')
-rw-r--r-- | spec/requests/projects/metrics_dashboard_spec.rb | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/spec/requests/projects/metrics_dashboard_spec.rb b/spec/requests/projects/metrics_dashboard_spec.rb index ab35788387c..f571e4a4309 100644 --- a/spec/requests/projects/metrics_dashboard_spec.rb +++ b/spec/requests/projects/metrics_dashboard_spec.rb @@ -23,6 +23,22 @@ RSpec.describe 'metrics dashboard page' do send_request expect(assigns(:environment).id).to eq(environment.id) end + + context 'with anonymous user and public dashboard visibility' do + let(:anonymous_user) { create(:user) } + let(:project) do + create(:project, :public, metrics_dashboard_access_level: 'enabled') + end + + before do + login_as(anonymous_user) + end + + it 'returns 200' do + send_request + expect(response).to have_gitlab_http_status(:ok) + end + end end describe 'GET /:namespace/:project/-/metrics?environment=:environment.id' do @@ -79,7 +95,27 @@ RSpec.describe 'metrics dashboard page' do end end + describe 'GET :/namespace/:project/-/metrics/:page' do + it 'returns 200 with path param page' do + # send_request(page: 'panel/new') cannot be used because it encodes '/' + get "#{dashboard_route}/panel/new" + + expect(response).to have_gitlab_http_status(:ok) + end + + it 'returns 200 with dashboard and path param page' do + # send_request(page: 'panel/new') cannot be used because it encodes '/' + get "#{dashboard_route(dashboard_path: 'dashboard.yml')}/panel/new" + + expect(response).to have_gitlab_http_status(:ok) + end + end + def send_request(params = {}) - get namespace_project_metrics_dashboard_path(namespace_id: project.namespace, project_id: project, **params) + get dashboard_route(params) + end + + def dashboard_route(params = {}) + namespace_project_metrics_dashboard_path(namespace_id: project.namespace, project_id: project, **params) end end |