diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-03 03:08:11 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-03 03:08:11 +0300 |
commit | bd8fb5668ae739a83d55ec5ca4a04344eef2167e (patch) | |
tree | baf085c6cd58b3b5e5a192d4d3db360d623bb056 /spec/lib/banzai | |
parent | 561e1b470f0a99fe6304c8f197348c47a637d594 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib/banzai')
-rw-r--r-- | spec/lib/banzai/filter/inline_grafana_metrics_filter_spec.rb | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/spec/lib/banzai/filter/inline_grafana_metrics_filter_spec.rb b/spec/lib/banzai/filter/inline_grafana_metrics_filter_spec.rb index 9ac06a90efd..2092b9e9db8 100644 --- a/spec/lib/banzai/filter/inline_grafana_metrics_filter_spec.rb +++ b/spec/lib/banzai/filter/inline_grafana_metrics_filter_spec.rb @@ -10,18 +10,20 @@ describe Banzai::Filter::InlineGrafanaMetricsFilter do let(:input) { %(<a href="#{trigger_url}">example</a>) } let(:doc) { filter(input) } + let(:embed_url) { doc.at_css('.js-render-metrics')['data-dashboard-url'] } + let(:dashboard_path) do '/d/XDaNK6amz/gitlab-omnibus-redis' \ - '?from=1570397739557&to=1570484139557' \ - '&var-instance=All&panelId=14' + '?from=1570397739557&panelId=14' \ + '&to=1570484139557&var-instance=All' end let(:trigger_url) { grafana_integration.grafana_url + dashboard_path } let(:dashboard_url) do urls.project_grafana_api_metrics_dashboard_url( project, - embedded: true, grafana_url: trigger_url, + embedded: true, start: "2019-10-06T21:35:39Z", end: "2019-10-07T21:35:39Z" ) @@ -29,6 +31,10 @@ describe Banzai::Filter::InlineGrafanaMetricsFilter do it_behaves_like 'a metrics embed filter' + around do |example| + Timecop.freeze(Time.utc(2019, 3, 17, 13, 10)) { example.run } + end + context 'when grafana is not configured' do before do allow(project).to receive(:grafana_integration).and_return(nil) @@ -39,7 +45,7 @@ describe Banzai::Filter::InlineGrafanaMetricsFilter do end end - context 'when parameters are missing' do + context 'when "panelId" parameter is missing' do let(:dashboard_path) { '/d/XDaNK6amz/gitlab-omnibus-redis' } it 'leaves the markdown unchanged' do @@ -47,6 +53,39 @@ describe Banzai::Filter::InlineGrafanaMetricsFilter do end end + context 'when time window parameters are missing' do + let(:dashboard_path) { '/d/XDaNK6amz/gitlab-omnibus-redis?panelId=16' } + + it 'sets the window to the last 8 hrs' do + expect(embed_url).to include( + 'from%3D1552799400000', 'to%3D1552828200000', + 'start=2019-03-17T05%3A10%3A00Z', 'end=2019-03-17T13%3A10%3A00Z' + ) + end + end + + context 'when "to" parameter is missing' do + let(:dashboard_path) { '/d/XDaNK6amz/gitlab-omnibus-redis?panelId=16&from=1570397739557' } + + it 'sets "to" to 8 hrs after "from"' do + expect(embed_url).to include( + 'from%3D1570397739557', 'to%3D1570426539000', + 'start=2019-10-06T21%3A35%3A39Z', 'end=2019-10-07T05%3A35%3A39Z' + ) + end + end + + context 'when "from" parameter is missing' do + let(:dashboard_path) { '/d/XDaNK6amz/gitlab-omnibus-redis?panelId=16&to=1570484139557' } + + it 'sets "from" to 8 hrs before "to"' do + expect(embed_url).to include( + 'from%3D1570455339000', 'to%3D1570484139557', + 'start=2019-10-07T13%3A35%3A39Z', 'end=2019-10-07T21%3A35%3A39Z' + ) + end + end + private # Nokogiri escapes the URLs, but we don't care about that |