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>2023-06-08 19:29:05 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-06-08 19:29:05 +0300
commitfefc7abcfc24e13136cceb3e1b965c116fc7f493 (patch)
tree24ace4649a1ce2c749c7c0a9e012c7d5ea3270ce
parentd7b53d074ba02eba2dbefcc20525924078ac331e (diff)
Add latest changes from gitlab-org/gitlab@16-0-stable-ee
-rw-r--r--lib/sidebars/admin/menus/monitoring_menu.rb13
-rw-r--r--spec/lib/sidebars/admin/menus/monitoring_menu_spec.rb28
2 files changed, 41 insertions, 0 deletions
diff --git a/lib/sidebars/admin/menus/monitoring_menu.rb b/lib/sidebars/admin/menus/monitoring_menu.rb
index 2da56e87144..2cf21e1bf77 100644
--- a/lib/sidebars/admin/menus/monitoring_menu.rb
+++ b/lib/sidebars/admin/menus/monitoring_menu.rb
@@ -10,6 +10,7 @@ module Sidebars
add_item(background_migrations_menu_item)
add_item(background_jobs_menu_item)
add_item(health_check_menu_item)
+ add_item(metrics_dashboard_menu_item)
true
end
@@ -65,6 +66,18 @@ module Sidebars
item_id: :health_check
)
end
+
+ def metrics_dashboard_menu_item
+ return ::Sidebars::NilMenuItem.new(item_id: :metrics_dashboard) unless
+ Gitlab::CurrentSettings.current_application_settings.grafana_enabled?
+
+ ::Sidebars::MenuItem.new(
+ title: _('Metrics Dashboard'),
+ link: Gitlab::CurrentSettings.current_application_settings.grafana_url,
+ active_routes: { path: Gitlab::CurrentSettings.current_application_settings.grafana_url },
+ item_id: :metrics_dashboard
+ )
+ end
end
end
end
diff --git a/spec/lib/sidebars/admin/menus/monitoring_menu_spec.rb b/spec/lib/sidebars/admin/menus/monitoring_menu_spec.rb
index 0483159da7a..3bf43b9a251 100644
--- a/spec/lib/sidebars/admin/menus/monitoring_menu_spec.rb
+++ b/spec/lib/sidebars/admin/menus/monitoring_menu_spec.rb
@@ -3,10 +3,38 @@
require 'spec_helper'
RSpec.describe Sidebars::Admin::Menus::MonitoringMenu, feature_category: :navigation do
+ let_it_be(:user) { create(:user, :admin) }
+ let(:context) { Sidebars::Context.new(current_user: user, container: nil) }
+ let(:menu) { described_class.new(context) }
+
it_behaves_like 'Admin menu',
link: '/admin/system_info',
title: s_('Admin|Monitoring'),
icon: 'monitor'
it_behaves_like 'Admin menu with sub menus'
+
+ describe 'Menu items' do
+ subject { described_class.new(context).renderable_items.index { |e| e.item_id == item_id } }
+
+ describe 'Metrics Dashboard' do
+ let(:item_id) { :metrics_dashboard }
+
+ before do
+ stub_application_setting(grafana_enabled: grafana_enabled)
+ end
+
+ context 'when grafana is enabled' do
+ let(:grafana_enabled) { true }
+
+ specify { is_expected.not_to be_nil }
+ end
+
+ context 'when grafana is disabled' do
+ let(:grafana_enabled) { false }
+
+ specify { is_expected.to be_nil }
+ end
+ end
+ end
end