diff options
author | Adriel Santiago <adriel@gitlab.com> | 2019-03-24 10:34:27 -0400 |
---|---|---|
committer | Adriel Santiago <adriel@gitlab.com> | 2019-04-04 13:50:24 -0400 |
commit | 6383769942b2b7fcdca8ed361a4fbb363ac3c68c (patch) | |
tree | 535c29f69373441238e85d5988c88d051de4bfe5 /spec/frontend/helpers/monitor_helper_spec.js | |
parent | ee72dc1b34d893662fe0cb7793a1a960312b1f48 (diff) | |
download | gitlab-ce-59324-queries-which-return-multiple-series-are-not-working-correctly.tar.gz |
Restore multiple series support59324-queries-which-return-multiple-series-are-not-working-correctly
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.js | 45 |
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]] }]); + }); + }); +}); |