summaryrefslogtreecommitdiff
path: root/spec/frontend/helpers/monitor_helper_spec.js
blob: 2e8bff298c45485c9ce99f72b67e8351bbbf257f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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]] }]);
    });
  });
});