From fefc7abcfc24e13136cceb3e1b965c116fc7f493 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 8 Jun 2023 16:29:05 +0000 Subject: Add latest changes from gitlab-org/gitlab@16-0-stable-ee --- lib/sidebars/admin/menus/monitoring_menu.rb | 13 ++++++++++ .../sidebars/admin/menus/monitoring_menu_spec.rb | 28 ++++++++++++++++++++++ 2 files changed, 41 insertions(+) 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 -- cgit v1.2.3