summaryrefslogtreecommitdiff
path: root/spec/javascripts/monitoring/utils_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/javascripts/monitoring/utils_spec.js')
-rw-r--r--spec/javascripts/monitoring/utils_spec.js38
1 files changed, 37 insertions, 1 deletions
diff --git a/spec/javascripts/monitoring/utils_spec.js b/spec/javascripts/monitoring/utils_spec.js
index 512dd2a0eb3..202b4ec8f2e 100644
--- a/spec/javascripts/monitoring/utils_spec.js
+++ b/spec/javascripts/monitoring/utils_spec.js
@@ -7,9 +7,14 @@ import {
stringToISODate,
ISODateToString,
isValidDate,
+ graphDataValidatorForAnomalyValues,
} from '~/monitoring/utils';
import { timeWindows, timeWindowsKeyNames } from '~/monitoring/constants';
-import { graphDataPrometheusQuery, graphDataPrometheusQueryRange } from './mock_data';
+import {
+ graphDataPrometheusQuery,
+ graphDataPrometheusQueryRange,
+ anomalyMockGraphData,
+} from './mock_data';
describe('getTimeDiff', () => {
function secondsBetween({ start, end }) {
@@ -307,3 +312,34 @@ describe('isDateTimePickerInputValid', () => {
});
});
});
+
+describe('graphDataValidatorForAnomalyValues', () => {
+ let oneQuery;
+ let threeQueries;
+ let fourQueries;
+ beforeEach(() => {
+ oneQuery = graphDataPrometheusQuery;
+ threeQueries = anomalyMockGraphData;
+
+ const queries = [...threeQueries.queries];
+ queries.push(threeQueries.queries[0]);
+ fourQueries = {
+ ...anomalyMockGraphData,
+ queries,
+ };
+ });
+ /*
+ * Anomaly charts can accept results for exactly 3 queries,
+ */
+ it('validates passes with the right query format', () => {
+ expect(graphDataValidatorForAnomalyValues(threeQueries)).toBe(true);
+ });
+
+ it('validation fails for wrong format, 1 metric', () => {
+ expect(graphDataValidatorForAnomalyValues(oneQuery)).toBe(false);
+ });
+
+ it('validation fails for wrong format, more than 3 metrics', () => {
+ expect(graphDataValidatorForAnomalyValues(fourQueries)).toBe(false);
+ });
+});