diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-07-22 00:10:16 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-07-22 00:10:16 +0300 |
commit | 6333a892f50d882f007497fd5512a740ba1020e5 (patch) | |
tree | d24e3699301fb3ee362bd3eeb6eb740067365a51 /spec/requests | |
parent | 779672e43b60e1b853d4581493c4838b775de83f (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests')
-rw-r--r-- | spec/requests/projects/metrics/dashboards/builder_spec.rb | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/spec/requests/projects/metrics/dashboards/builder_spec.rb b/spec/requests/projects/metrics/dashboards/builder_spec.rb deleted file mode 100644 index 8af2d1f1d25..00000000000 --- a/spec/requests/projects/metrics/dashboards/builder_spec.rb +++ /dev/null @@ -1,123 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'Projects::Metrics::Dashboards::BuilderController', feature_category: :metrics do - let_it_be(:project) { create(:project) } - let_it_be(:environment) { create(:environment, project: project) } - let_it_be(:user) { create(:user) } - let_it_be(:valid_panel_yml) do - <<~YML - --- - title: "Super Chart A1" - type: "area-chart" - y_label: "y_label" - weight: 1 - max_value: 1 - metrics: - - id: metric_a1 - query_range: |+ - avg( - sum( - container_memory_usage_bytes{ - container_name!="POD", - pod_name=~"^{{ci_environment_slug}}-(.*)", - namespace="{{kube_namespace}}", - user_def_variable="{{user_def_variable}}" - } - ) by (job) - ) without (job) - /1024/1024/1024 - unit: unit - label: Legend Label - YML - end - - let_it_be(:invalid_panel_yml) do - <<~YML - --- - title: "Super Chart A1" - type: "area-chart" - y_label: "y_label" - weight: 1 - max_value: 1 - YML - end - - 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 - before do - stub_feature_flags(remove_monitor_metrics: false) - end - - context 'as anonymous user' do - it 'redirects user to sign in page' do - send_request - - expect(response).to redirect_to(new_user_session_path) - end - end - - context 'as user with guest access' do - before do - 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 'valid yaml panel is supplied' do - it 'returns success' do - send_request(panel_yaml: valid_panel_yml) - - expect(response).to have_gitlab_http_status(:ok) - expect(json_response).to include('title' => 'Super Chart A1', 'type' => 'area-chart') - end - end - - context 'invalid yaml panel is supplied' do - it 'returns unprocessable entity' do - send_request(panel_yaml: invalid_panel_yml) - - expect(response).to have_gitlab_http_status(:unprocessable_entity) - expect(json_response['message']).to eq('Each "panel" must define an array :metrics') - end - end - - context 'invalid panel_yaml is not a yaml string' do - it 'returns unprocessable entity' do - send_request(panel_yaml: 1) - - expect(response).to have_gitlab_http_status(:unprocessable_entity) - expect(json_response['message']).to eq('Invalid configuration format') - end - end - - context 'when metrics dashboard feature is unavailable' do - before do - stub_feature_flags(remove_monitor_metrics: true) - end - - it 'returns not found' do - send_request - - expect(response).to have_gitlab_http_status(:not_found) - end - end - end - end -end |