diff options
| author | Sarah Yasonik <syasonik@gitlab.com> | 2019-06-20 14:06:18 +0000 |
|---|---|---|
| committer | Sean McGivern <sean@gitlab.com> | 2019-06-20 14:06:18 +0000 |
| commit | f49dd76a44ec04d35fbf3f08bd3c950d2df4de5b (patch) | |
| tree | 43c53421eeb64cac700969cc0ec3a3871e5a03ee /spec/lib | |
| parent | 429f6b629b691945d8cd187b79e00cfa7eed6fa2 (diff) | |
| download | gitlab-ce-f49dd76a44ec04d35fbf3f08bd3c950d2df4de5b.tar.gz | |
Add embedding flag and filter to CPU/Mem
This commits adds support for metrics dashboards
for embedding. If the flag 'embedded' is provided
to the environments/id/metrics_dashboard endpoint,
the response will be suitable for embedding in
issues or other content.
This is a precursor for support for embedding
metrics in GFM.
Diffstat (limited to 'spec/lib')
| -rw-r--r-- | spec/lib/gitlab/metrics/dashboard/dynamic_dashboard_service_spec.rb | 30 | ||||
| -rw-r--r-- | spec/lib/gitlab/metrics/dashboard/finder_spec.rb | 8 |
2 files changed, 37 insertions, 1 deletions
diff --git a/spec/lib/gitlab/metrics/dashboard/dynamic_dashboard_service_spec.rb b/spec/lib/gitlab/metrics/dashboard/dynamic_dashboard_service_spec.rb new file mode 100644 index 00000000000..eecd257b38d --- /dev/null +++ b/spec/lib/gitlab/metrics/dashboard/dynamic_dashboard_service_spec.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Metrics::Dashboard::DynamicDashboardService, :use_clean_rails_memory_store_caching do + include MetricsDashboardHelpers + + set(:project) { build(:project) } + set(:environment) { create(:environment, project: project) } + + describe '#get_dashboard' do + let(:service_params) { [project, nil, { environment: environment, dashboard_path: nil }] } + let(:service_call) { described_class.new(*service_params).get_dashboard } + + it_behaves_like 'valid embedded dashboard service response' + + it 'caches the unprocessed dashboard for subsequent calls' do + expect(YAML).to receive(:safe_load).once.and_call_original + + described_class.new(*service_params).get_dashboard + described_class.new(*service_params).get_dashboard + end + + context 'when called with a non-system dashboard' do + let(:dashboard_path) { 'garbage/dashboard/path' } + + it_behaves_like 'valid embedded dashboard service response' + end + end +end diff --git a/spec/lib/gitlab/metrics/dashboard/finder_spec.rb b/spec/lib/gitlab/metrics/dashboard/finder_spec.rb index 29fe1ae8d9c..b9a5ee9c2b3 100644 --- a/spec/lib/gitlab/metrics/dashboard/finder_spec.rb +++ b/spec/lib/gitlab/metrics/dashboard/finder_spec.rb @@ -11,7 +11,7 @@ describe Gitlab::Metrics::Dashboard::Finder, :use_clean_rails_memory_store_cachi describe '.find' do let(:dashboard_path) { '.gitlab/dashboards/test.yml' } - let(:service_call) { described_class.find(project, nil, environment, dashboard_path) } + let(:service_call) { described_class.find(project, nil, environment, dashboard_path: dashboard_path) } it_behaves_like 'misconfigured dashboard service response', :not_found @@ -45,6 +45,12 @@ describe Gitlab::Metrics::Dashboard::Finder, :use_clean_rails_memory_store_cachi it_behaves_like 'valid dashboard service response' end + + context 'when the dashboard is expected to be embedded' do + let(:service_call) { described_class.find(project, nil, environment, dashboard_path: nil, embedded: true) } + + it_behaves_like 'valid embedded dashboard service response' + end end describe '.find_all_paths' do |
