diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 01:45:44 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 01:45:44 +0000 |
commit | 85dc423f7090da0a52c73eb66faf22ddb20efff9 (patch) | |
tree | 9160f299afd8c80c038f08e1545be119f5e3f1e1 /spec/lib/banzai/filter/inline_metrics_filter_spec.rb | |
parent | 15c2c8c66dbe422588e5411eee7e68f1fa440bb8 (diff) | |
download | gitlab-ce-85dc423f7090da0a52c73eb66faf22ddb20efff9.tar.gz |
Add latest changes from gitlab-org/gitlab@13-4-stable-ee
Diffstat (limited to 'spec/lib/banzai/filter/inline_metrics_filter_spec.rb')
-rw-r--r-- | spec/lib/banzai/filter/inline_metrics_filter_spec.rb | 71 |
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 |