Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-08-04 21:09:49 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-08-04 21:09:49 +0300
commit2ecc6e22e3517a2e0d9a5bd0d4297c74e2f338d4 (patch)
tree39e5264a6ea6467910471ed5e98eb379d66a6982 /spec/requests/projects
parentaca89cb7e933eca98b794cbd5457ffabd54b43f7 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests/projects')
-rw-r--r--spec/requests/projects/metrics/dashboards/builder_spec.rb72
1 files changed, 72 insertions, 0 deletions
diff --git a/spec/requests/projects/metrics/dashboards/builder_spec.rb b/spec/requests/projects/metrics/dashboards/builder_spec.rb
new file mode 100644
index 00000000000..b56a5def211
--- /dev/null
+++ b/spec/requests/projects/metrics/dashboards/builder_spec.rb
@@ -0,0 +1,72 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Projects::Metrics::Dashboards::BuilderController' do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:environment) { create(:environment, project: project) }
+ let_it_be(:user) { create(:user) }
+
+ def send_request(params = {})
+ post namespace_project_metrics_dashboards_builder_path(namespace_id: project.namespace, project_id: project, format: :json, **params)
+ end
+
+ describe 'POST /:namespace/:project/-/metrics/dashboards/builder' do
+ context 'as anonymous user' do
+ before do
+ stub_feature_flags(metrics_dashboard_new_panel_page: true)
+ end
+
+ it 'redirects to sign in' do
+ send_request
+
+ expect(response).to redirect_to(new_user_session_path)
+ end
+ end
+
+ context 'as user with reporter access' do
+ before do
+ stub_feature_flags(metrics_dashboard_new_panel_page: true)
+ project.add_guest(user)
+ login_as(user)
+ end
+
+ it 'returns not found' do
+ send_request
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+
+ context 'as logged in user' do
+ before do
+ project.add_developer(user)
+ login_as(user)
+ end
+
+ context 'metrics_dashboard_new_panel_page is enabled' do
+ before do
+ stub_feature_flags(metrics_dashboard_new_panel_page: true)
+ end
+
+ it 'returns success' do
+ send_request
+
+ expect(response).to have_gitlab_http_status(:ok)
+ end
+ end
+
+ context 'metrics_dashboard_new_panel_page is disabled' do
+ before do
+ stub_feature_flags(metrics_dashboard_new_panel_page: false)
+ end
+
+ it 'returns not found' do
+ send_request
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+ end
+end