summaryrefslogtreecommitdiff
path: root/spec/javascripts/monitoring/dashboard_spec.js
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2019-05-06 10:08:20 +0100
committerFilipa Lacerda <filipa@gitlab.com>2019-05-06 10:08:20 +0100
commit678c5a0086646b1efaed4c02bc53a018f6b0a950 (patch)
tree1d77242b1480020fe2170de19577500f79699c17 /spec/javascripts/monitoring/dashboard_spec.js
parent8d1bdaf4396291c7a61bcc3da8b0d6cd2da3e0dc (diff)
parent8b55b794cb48c726cde7cf0ad24180d8e6bb975f (diff)
downloadgitlab-ce-61278-next.tar.gz
Merge branch 'master' into 61278-next61278-next
* master: (64 commits) Allow usage of quick actions for internal users Added Omniauth OpenId Connect startegy Changelog update for MR #27025, Issue #57528 Docs: Realigning scattered EE docs into CE Add troubleshooting step for older docker clients Edit regionendpoint text Docs: Change geo redirects to relative to match EE Docs: Second Attempt to realign administration/geo docs Document Prometheus app can be uninstalled Docs: Merge EE doc/administration/high_availability to CE Docs: Merge EE doc/gitlab-geo to CE Docs: Merge EE doc/user/application_security to CE Docs: Merge EE doc/​administration/​geo to CE Docs: Merge Various EE /doc dirs to CE Docs: Merge EE doc/user/project/*.md to CE Docs: Merge 4 EE doc/user/project dirs to CE Docs: Merge misc EE doc/user/project/i* dirs to CE Docs: Merge Misc EE doc/administration files and dirs to CE Docs: Merge EE doc/ci to CE Docs: Merge EE doc/user/project/issues to CE ...
Diffstat (limited to 'spec/javascripts/monitoring/dashboard_spec.js')
-rw-r--r--spec/javascripts/monitoring/dashboard_spec.js37
1 files changed, 36 insertions, 1 deletions
diff --git a/spec/javascripts/monitoring/dashboard_spec.js b/spec/javascripts/monitoring/dashboard_spec.js
index 16dc0084a10..5c28840d3a4 100644
--- a/spec/javascripts/monitoring/dashboard_spec.js
+++ b/spec/javascripts/monitoring/dashboard_spec.js
@@ -1,7 +1,7 @@
import Vue from 'vue';
import MockAdapter from 'axios-mock-adapter';
import Dashboard from '~/monitoring/components/dashboard.vue';
-import { timeWindows } from '~/monitoring/constants';
+import { timeWindows, timeWindowsKeyNames } from '~/monitoring/constants';
import axios from '~/lib/utils/axios_utils';
import { metricsGroupsAPIResponse, mockApiEndpoint, environmentData } from './mock_data';
@@ -248,6 +248,41 @@ describe('Dashboard', () => {
done();
});
});
+
+ it('shows a specific time window selected from the url params', done => {
+ spyOnDependency(Dashboard, 'getParameterValues').and.returnValue(['thirtyMinutes']);
+
+ const component = new DashboardComponent({
+ el: document.querySelector('.prometheus-graphs'),
+ propsData: { ...propsData, hasMetrics: true, showTimeWindowDropdown: true },
+ });
+
+ setTimeout(() => {
+ const selectedTimeWindow = component.$el.querySelector(
+ '.js-time-window-dropdown [active="true"]',
+ );
+
+ expect(selectedTimeWindow.textContent.trim()).toEqual('30 minutes');
+ done();
+ });
+ });
+
+ it('defaults to the eight hours time window for non valid url parameters', done => {
+ spyOnDependency(Dashboard, 'getParameterValues').and.returnValue([
+ '<script>alert("XSS")</script>',
+ ]);
+
+ const component = new DashboardComponent({
+ el: document.querySelector('.prometheus-graphs'),
+ propsData: { ...propsData, hasMetrics: true, showTimeWindowDropdown: true },
+ });
+
+ Vue.nextTick(() => {
+ expect(component.selectedTimeWindowKey).toEqual(timeWindowsKeyNames.eightHours);
+
+ done();
+ });
+ });
});
describe('when the window resizes', () => {