summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyasonik <syasonik@gitlab.com>2019-06-14 11:47:48 +0100
committersyasonik <syasonik@gitlab.com>2019-06-14 11:47:48 +0100
commit619839df16b11da29bbf33baa202713b3fd870b5 (patch)
tree2da9196539a914bd1146b7e3a03b51a98558d37e
parentf442633b71019e99ec7b1528d5ce7a480441da7e (diff)
downloadgitlab-ce-specify-dashboard-name.tar.gz
Add extra unit tests for project+system dashspecify-dashboard-name
-rw-r--r--lib/gitlab/metrics/dashboard/system_dashboard_service.rb3
-rw-r--r--spec/lib/gitlab/metrics/dashboard/project_dashboard_service_spec.rb25
-rw-r--r--spec/lib/gitlab/metrics/dashboard/system_dashboard_service_spec.rb14
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