summaryrefslogtreecommitdiff
path: root/spec/frontend/helpers/monitor_helper_spec.js
diff options
context:
space:
mode:
authorAdriel Santiago <adriel@gitlab.com>2019-03-24 10:34:27 -0400
committerAdriel Santiago <adriel@gitlab.com>2019-04-04 13:50:24 -0400
commit6383769942b2b7fcdca8ed361a4fbb363ac3c68c (patch)
tree535c29f69373441238e85d5988c88d051de4bfe5 /spec/frontend/helpers/monitor_helper_spec.js
parentee72dc1b34d893662fe0cb7793a1a960312b1f48 (diff)
downloadgitlab-ce-59324-queries-which-return-multiple-series-are-not-working-correctly.tar.gz
Corrects an issue whereby queries which return multiple series results were not rendering as multiple data series on the metrics dashboard
Diffstat (limited to 'spec/frontend/helpers/monitor_helper_spec.js')
-rw-r--r--spec/frontend/helpers/monitor_helper_spec.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/frontend/helpers/monitor_helper_spec.js b/spec/frontend/helpers/monitor_helper_spec.js
new file mode 100644
index 00000000000..2e8bff298c4
--- /dev/null
+++ b/spec/frontend/helpers/monitor_helper_spec.js
@@ -0,0 +1,45 @@
+import * as monitorHelper from '~/helpers/monitor_helper';
+
+describe('monitor helper', () => {
+ const defaultConfig = { default: true, name: 'default name' };
+ const name = 'data name';
+ const series = [[1, 1], [2, 2], [3, 3]];
+ const data = ({ metric = { default_name: name }, values = series } = {}) => [{ metric, values }];
+
+ describe('makeDataSeries', () => {
+ const expectedDataSeries = [
+ {
+ ...defaultConfig,
+ data: series,
+ },
+ ];
+
+ it('converts query results to data series', () => {
+ expect(monitorHelper.makeDataSeries(data({ metric: {} }), defaultConfig)).toEqual(
+ expectedDataSeries,
+ );
+ });
+
+ it('returns an empty array if no query results exist', () => {
+ expect(monitorHelper.makeDataSeries([], defaultConfig)).toEqual([]);
+ });
+
+ it('handles multi-series query results', () => {
+ const expectedData = { ...expectedDataSeries[0], name: 'default name: data name' };
+
+ expect(monitorHelper.makeDataSeries([...data(), ...data()], defaultConfig)).toEqual([
+ expectedData,
+ expectedData,
+ ]);
+ });
+
+ it('excludes NaN values', () => {
+ expect(
+ monitorHelper.makeDataSeries(
+ data({ metric: {}, values: [[1, 1], [2, NaN]] }),
+ defaultConfig,
+ ),
+ ).toEqual([{ ...expectedDataSeries[0], data: [[1, 1]] }]);
+ });
+ });
+});