diff options
author | syasonik <syasonik@gitlab.com> | 2019-06-14 11:47:48 +0100 |
---|---|---|
committer | syasonik <syasonik@gitlab.com> | 2019-06-14 11:47:48 +0100 |
commit | 619839df16b11da29bbf33baa202713b3fd870b5 (patch) | |
tree | 2da9196539a914bd1146b7e3a03b51a98558d37e | |
parent | f442633b71019e99ec7b1528d5ce7a480441da7e (diff) | |
download | gitlab-ce-specify-dashboard-name.tar.gz |
Add extra unit tests for project+system dashspecify-dashboard-name
3 files changed, 41 insertions, 1 deletions
diff --git a/lib/gitlab/metrics/dashboard/system_dashboard_service.rb b/lib/gitlab/metrics/dashboard/system_dashboard_service.rb index fdbaf2e13d7..82421572f4a 100644 --- a/lib/gitlab/metrics/dashboard/system_dashboard_service.rb +++ b/lib/gitlab/metrics/dashboard/system_dashboard_service.rb @@ -7,12 +7,13 @@ module Gitlab module Dashboard class SystemDashboardService < Gitlab::Metrics::Dashboard::BaseService SYSTEM_DASHBOARD_PATH = 'config/prometheus/common_metrics.yml' + SYSTEM_DASHBOARD_NAME = 'Default' class << self def all_dashboard_paths(_project) [{ path: SYSTEM_DASHBOARD_PATH, - display_name: 'Default', + display_name: SYSTEM_DASHBOARD_NAME, default: true }] end diff --git a/spec/lib/gitlab/metrics/dashboard/project_dashboard_service_spec.rb b/spec/lib/gitlab/metrics/dashboard/project_dashboard_service_spec.rb index 794ac5f109b..57d82421b5d 100644 --- a/spec/lib/gitlab/metrics/dashboard/project_dashboard_service_spec.rb +++ b/spec/lib/gitlab/metrics/dashboard/project_dashboard_service_spec.rb @@ -59,4 +59,29 @@ describe Gitlab::Metrics::Dashboard::ProjectDashboardService, :use_clean_rails_m it_behaves_like 'misconfigured dashboard service response', :unprocessable_entity end end + + describe '::all_dashboard_paths' do + let(:all_dashboards) { described_class.all_dashboard_paths(project) } + + context 'when there are no project dashboards' do + it 'returns an empty array' do + expect(all_dashboards).to be_empty + end + end + + context 'when there are project dashboards available' do + let(:dashboard_path) { '.gitlab/dashboards/test.yml' } + let(:project) { project_with_dashboard(dashboard_path) } + + it 'returns the dashboard attributes' do + expect(all_dashboards).to eq( + [{ + path: dashboard_path, + display_name: 'test.yml', + default: false + }] + ) + end + end + end end diff --git a/spec/lib/gitlab/metrics/dashboard/system_dashboard_service_spec.rb b/spec/lib/gitlab/metrics/dashboard/system_dashboard_service_spec.rb index 2648fe990de..2af745bd4d7 100644 --- a/spec/lib/gitlab/metrics/dashboard/system_dashboard_service_spec.rb +++ b/spec/lib/gitlab/metrics/dashboard/system_dashboard_service_spec.rb @@ -29,4 +29,18 @@ describe Gitlab::Metrics::Dashboard::SystemDashboardService, :use_clean_rails_me it_behaves_like 'valid dashboard service response' end end + + describe '::all_dashboard_paths' do + it 'returns the dashboard attributes' do + all_dashboards = described_class.all_dashboard_paths(project) + + expect(all_dashboards).to eq( + [{ + path: described_class::SYSTEM_DASHBOARD_PATH, + display_name: described_class::SYSTEM_DASHBOARD_NAME, + default: true + }] + ) + end + end end |