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:
Diffstat (limited to 'spec/lib/banzai/filter/inline_metrics_filter_spec.rb')
-rw-r--r--spec/lib/banzai/filter/inline_metrics_filter_spec.rb71
1 files changed, 57 insertions, 14 deletions
diff --git a/spec/lib/banzai/filter/inline_metrics_filter_spec.rb b/spec/lib/banzai/filter/inline_metrics_filter_spec.rb
index 9b0b95b9da2..cdebd886b16 100644
--- a/spec/lib/banzai/filter/inline_metrics_filter_spec.rb
+++ b/spec/lib/banzai/filter/inline_metrics_filter_spec.rb
@@ -5,25 +5,68 @@ require 'spec_helper'
RSpec.describe Banzai::Filter::InlineMetricsFilter do
include FilterSpecHelper
- let(:params) { ['foo', 'bar', 12] }
- let(:query_params) { {} }
-
- let(:trigger_url) { urls.metrics_namespace_project_environment_url(*params, query_params) }
+ let(:environment_id) { 12 }
let(:dashboard_url) { urls.metrics_dashboard_namespace_project_environment_url(*params, **query_params, embedded: true) }
- it_behaves_like 'a metrics embed filter'
+ let(:query_params) do
+ {
+ dashboard: 'config/prometheus/common_metrics.yml',
+ group: 'System metrics (Kubernetes)',
+ title: 'Core Usage (Pod Average)',
+ y_label: 'Cores per Pod'
+ }
+ end
+
+ context 'with /-/environments/:environment_id/metrics URL' do
+ let(:params) { ['group', 'project', environment_id] }
+ let(:trigger_url) { urls.metrics_namespace_project_environment_url(*params, **query_params) }
+
+ context 'with no query params' do
+ let(:query_params) { {} }
+
+ it_behaves_like 'a metrics embed filter'
+ end
+
+ context 'with query params' do
+ it_behaves_like 'a metrics embed filter'
+ end
+ end
- context 'with query params specified' do
- let(:query_params) do
- {
- dashboard: 'config/prometheus/common_metrics.yml',
- group: 'System metrics (Kubernetes)',
- title: 'Core Usage (Pod Average)',
- y_label: 'Cores per Pod'
- }
+ context 'with /-/metrics?environment=:environment_id URL' do
+ let(:params) { %w(group project) }
+ let(:trigger_url) { urls.namespace_project_metrics_dashboard_url(*params, **query_params) }
+ let(:dashboard_url) do
+ urls.metrics_dashboard_namespace_project_environment_url(
+ *params.append(environment_id),
+ **query_params.except(:environment),
+ embedded: true
+ )
end
- it_behaves_like 'a metrics embed filter'
+ context 'with query params' do
+ it_behaves_like 'a metrics embed filter' do
+ before do
+ query_params.merge!(environment: environment_id)
+ end
+ end
+ end
+
+ context 'with only environment in query params' do
+ let(:query_params) { { environment: environment_id } }
+
+ it_behaves_like 'a metrics embed filter'
+ end
+
+ context 'with no query params' do
+ let(:query_params) { {} }
+
+ it 'ignores metrics URL without environment parameter' do
+ input = %(<a href="#{trigger_url}">example</a>)
+ filtered_input = filter(input).to_s
+
+ expect(CGI.unescape_html(filtered_input)).to eq(input)
+ end
+ end
end
it 'leaves links to other dashboards unchanged' do