2017-12-20 05:33:33 -06:00
|
|
|
import TimeSeries from 'app/core/time_series2';
|
2018-05-31 14:18:59 -05:00
|
|
|
import { updateLegendValues } from 'app/core/time_series2';
|
2017-10-10 07:25:57 -05:00
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('TimeSeries', () => {
|
2018-08-26 14:52:57 -05:00
|
|
|
let points, series;
|
|
|
|
const yAxisFormats = ['short', 'ms'];
|
|
|
|
let testData;
|
2017-10-10 07:25:57 -05:00
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
beforeEach(() => {
|
2017-10-10 07:25:57 -05:00
|
|
|
testData = {
|
2017-12-20 05:33:33 -06:00
|
|
|
alias: 'test',
|
|
|
|
datapoints: [[1, 2], [null, 3], [10, 4], [8, 5]],
|
2017-10-10 07:25:57 -05:00
|
|
|
};
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('when getting flot pairs', () => {
|
|
|
|
it('with connected style, should ignore nulls', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries(testData);
|
2017-12-20 05:33:33 -06:00
|
|
|
points = series.getFlotPairs('connected', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(points.length).toBe(3);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('with null as zero style, should replace nulls with zero', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries(testData);
|
2017-12-20 05:33:33 -06:00
|
|
|
points = series.getFlotPairs('null as zero', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(points.length).toBe(4);
|
|
|
|
expect(points[1][1]).toBe(0);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('if last is null current should pick next to last', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[10, 1], [null, 2]],
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.current).toBe(10);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('max value should work for negative values', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[-10, 1], [-4, 2]],
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.max).toBe(-4);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('average value should ignore nulls', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries(testData);
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.avg).toBe(6.333333333333333);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('the delta value should account for nulls', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[1, 2], [3, 3], [null, 4], [10, 5], [15, 6]],
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.delta).toBe(14);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('the delta value should account for nulls on first', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[null, 2], [1, 3], [10, 4], [15, 5]],
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.delta).toBe(14);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('the delta value should account for nulls on last', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[1, 2], [5, 3], [10, 4], [null, 5]],
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.delta).toBe(9);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('the delta value should account for resets', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[1, 2], [5, 3], [10, 4], [0, 5], [10, 6]],
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.delta).toBe(19);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('the delta value should account for resets on last', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[1, 2], [2, 3], [10, 4], [8, 5]],
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.delta).toBe(17);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('the range value should be max - min', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries(testData);
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.range).toBe(9);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('first value should ingone nulls', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries(testData);
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.first).toBe(1);
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[null, 2], [1, 3], [10, 4], [8, 5]],
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.first).toBe(1);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('with null as zero style, average value should treat nulls as 0', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries(testData);
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null as zero', yAxisFormats);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.avg).toBe(4.75);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('average value should be null if all values is null', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[null, 2], [null, 3], [null, 4], [null, 5]],
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2017-12-20 05:33:33 -06:00
|
|
|
series.getFlotPairs('null');
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stats.avg).toBe(null);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
2018-07-02 13:04:36 -05:00
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('calculates timeStep', () => {
|
2018-07-02 13:04:36 -05:00
|
|
|
series = new TimeSeries({
|
|
|
|
datapoints: [[null, 1], [null, 2], [null, 3]],
|
|
|
|
});
|
|
|
|
series.getFlotPairs('null');
|
|
|
|
expect(series.stats.timeStep).toBe(1);
|
|
|
|
|
|
|
|
series = new TimeSeries({
|
|
|
|
datapoints: [[0, 1530529290], [0, 1530529305], [0, 1530529320]],
|
|
|
|
});
|
|
|
|
series.getFlotPairs('null');
|
|
|
|
expect(series.stats.timeStep).toBe(15);
|
|
|
|
});
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('When checking if ms resolution is needed', () => {
|
|
|
|
describe('msResolution with second resolution timestamps', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-19 09:06:54 -06:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[45, 1234567890], [60, 1234567899]],
|
2017-12-19 09:06:54 -06:00
|
|
|
});
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set hasMsResolution to false', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.hasMsResolution).toBe(false);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('msResolution with millisecond resolution timestamps', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-19 09:06:54 -06:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[55, 1236547890001], [90, 1234456709000]],
|
2017-12-19 09:06:54 -06:00
|
|
|
});
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should show millisecond resolution tooltip', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.hasMsResolution).toBe(true);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('msResolution with millisecond resolution timestamps but with trailing zeroes', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-19 09:06:54 -06:00
|
|
|
series = new TimeSeries({
|
2017-12-20 05:33:33 -06:00
|
|
|
datapoints: [[45, 1234567890000], [60, 1234567899000]],
|
2017-12-19 09:06:54 -06:00
|
|
|
});
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should not show millisecond resolution tooltip', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.hasMsResolution).toBe(false);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('can detect if series contains ms precision', () => {
|
2018-08-30 01:58:43 -05:00
|
|
|
let fakedata;
|
2017-10-10 07:25:57 -05:00
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
beforeEach(() => {
|
2017-10-10 07:25:57 -05:00
|
|
|
fakedata = testData;
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('missing datapoint with ms precision', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
fakedata.datapoints[0] = [1337, 1234567890000];
|
|
|
|
series = new TimeSeries(fakedata);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.isMsResolutionNeeded()).toBe(false);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('contains datapoint with ms precision', () => {
|
2017-10-10 07:25:57 -05:00
|
|
|
fakedata.datapoints[0] = [1337, 1236547890001];
|
|
|
|
series = new TimeSeries(fakedata);
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.isMsResolutionNeeded()).toBe(true);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('series overrides', () => {
|
2018-08-30 01:58:43 -05:00
|
|
|
let series;
|
2018-09-05 00:47:30 -05:00
|
|
|
beforeEach(() => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries(testData);
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('fill & points', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-20 05:33:33 -06:00
|
|
|
series.alias = 'test';
|
|
|
|
series.applySeriesOverrides([{ alias: 'test', fill: 0, points: true }]);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set fill zero, and enable points', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.lines.fill).toBe(0.001);
|
|
|
|
expect(series.points.show).toBe(true);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('series option overrides, bars, true & lines false', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-20 05:33:33 -06:00
|
|
|
series.alias = 'test';
|
2017-12-21 01:39:31 -06:00
|
|
|
series.applySeriesOverrides([{ alias: 'test', bars: true, lines: false }]);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should disable lines, and enable bars', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.lines.show).toBe(false);
|
|
|
|
expect(series.bars.show).toBe(true);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('series option overrides, linewidth, stack', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-20 05:33:33 -06:00
|
|
|
series.alias = 'test';
|
2017-12-21 01:39:31 -06:00
|
|
|
series.applySeriesOverrides([{ alias: 'test', linewidth: 5, stack: false }]);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should disable stack, and set lineWidth', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.stack).toBe(false);
|
|
|
|
expect(series.lines.lineWidth).toBe(5);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('series option overrides, dashes and lineWidth', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-20 05:33:33 -06:00
|
|
|
series.alias = 'test';
|
2017-12-21 01:39:31 -06:00
|
|
|
series.applySeriesOverrides([{ alias: 'test', linewidth: 5, dashes: true }]);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should enable dashes, set dashes lineWidth to 5 and lines lineWidth to 0', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.dashes.show).toBe(true);
|
|
|
|
expect(series.dashes.lineWidth).toBe(5);
|
|
|
|
expect(series.lines.lineWidth).toBe(0);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('series option overrides, fill below to', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-20 05:33:33 -06:00
|
|
|
series.alias = 'test';
|
|
|
|
series.applySeriesOverrides([{ alias: 'test', fillBelowTo: 'min' }]);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should disable line fill and add fillBelowTo', () => {
|
2017-12-20 05:33:33 -06:00
|
|
|
expect(series.fillBelowTo).toBe('min');
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('series option overrides, pointradius, steppedLine', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-20 05:33:33 -06:00
|
|
|
series.alias = 'test';
|
2017-12-21 01:39:31 -06:00
|
|
|
series.applySeriesOverrides([{ alias: 'test', pointradius: 5, steppedLine: true }]);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set pointradius, and set steppedLine', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.points.radius).toBe(5);
|
|
|
|
expect(series.lines.steps).toBe(true);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('override match on regex', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-20 05:33:33 -06:00
|
|
|
series.alias = 'test_01';
|
|
|
|
series.applySeriesOverrides([{ alias: '/.*01/', lines: false }]);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should match second series', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.lines.show).toBe(false);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('override series y-axis, and z-index', () => {
|
|
|
|
beforeEach(() => {
|
2017-12-20 05:33:33 -06:00
|
|
|
series.alias = 'test';
|
|
|
|
series.applySeriesOverrides([{ alias: 'test', yaxis: 2, zindex: 2 }]);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set yaxis', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.yaxis).toBe(2);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set zindex', () => {
|
2017-10-22 00:03:26 -05:00
|
|
|
expect(series.zindex).toBe(2);
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
2018-05-08 08:18:57 -05:00
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('override color', () => {
|
|
|
|
beforeEach(() => {
|
2018-05-08 08:18:57 -05:00
|
|
|
series.applySeriesOverrides([{ alias: 'test', color: '#112233' }]);
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set color', () => {
|
2018-05-08 08:18:57 -05:00
|
|
|
expect(series.color).toBe('#112233');
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set bars.fillColor', () => {
|
2018-05-08 08:18:57 -05:00
|
|
|
expect(series.bars.fillColor).toBe('#112233');
|
|
|
|
});
|
|
|
|
});
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('value formatter', () => {
|
2018-08-30 01:58:43 -05:00
|
|
|
let series;
|
2018-09-05 00:47:30 -05:00
|
|
|
beforeEach(() => {
|
2017-10-10 07:25:57 -05:00
|
|
|
series = new TimeSeries(testData);
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should format non-numeric values as empty string', () => {
|
2017-12-20 05:33:33 -06:00
|
|
|
expect(series.formatValue(null)).toBe('');
|
|
|
|
expect(series.formatValue(undefined)).toBe('');
|
|
|
|
expect(series.formatValue(NaN)).toBe('');
|
|
|
|
expect(series.formatValue(Infinity)).toBe('');
|
|
|
|
expect(series.formatValue(-Infinity)).toBe('');
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|
|
|
|
});
|
2018-05-31 14:18:59 -05:00
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
describe('legend decimals', () => {
|
2018-05-31 14:18:59 -05:00
|
|
|
let series, panel;
|
2018-08-26 10:14:40 -05:00
|
|
|
const height = 200;
|
2018-09-05 00:47:30 -05:00
|
|
|
beforeEach(() => {
|
2018-05-31 14:18:59 -05:00
|
|
|
testData = {
|
|
|
|
alias: 'test',
|
|
|
|
datapoints: [[1, 2], [0, 3], [10, 4], [8, 5]],
|
|
|
|
};
|
|
|
|
series = new TimeSeries(testData);
|
|
|
|
series.getFlotPairs();
|
|
|
|
panel = {
|
|
|
|
decimals: null,
|
|
|
|
yaxes: [
|
|
|
|
{
|
|
|
|
decimals: null,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
};
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set decimals based on Y axis (expect calculated decimals = 1)', () => {
|
2018-08-26 10:14:40 -05:00
|
|
|
const data = [series];
|
2018-05-31 14:18:59 -05:00
|
|
|
// Expect ticks with this data will have decimals = 1
|
|
|
|
updateLegendValues(data, panel, height);
|
|
|
|
expect(data[0].decimals).toBe(2);
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set decimals based on Y axis to 0 if calculated decimals = 0)', () => {
|
2018-05-31 14:18:59 -05:00
|
|
|
testData.datapoints = [[10, 2], [0, 3], [100, 4], [80, 5]];
|
|
|
|
series = new TimeSeries(testData);
|
|
|
|
series.getFlotPairs();
|
2018-08-26 10:14:40 -05:00
|
|
|
const data = [series];
|
2018-05-31 14:18:59 -05:00
|
|
|
updateLegendValues(data, panel, height);
|
|
|
|
expect(data[0].decimals).toBe(0);
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set decimals to Y axis decimals + 1', () => {
|
2018-05-31 14:18:59 -05:00
|
|
|
panel.yaxes[0].decimals = 2;
|
2018-08-26 10:14:40 -05:00
|
|
|
const data = [series];
|
2018-05-31 14:18:59 -05:00
|
|
|
updateLegendValues(data, panel, height);
|
|
|
|
expect(data[0].decimals).toBe(3);
|
|
|
|
});
|
|
|
|
|
2018-09-05 00:47:30 -05:00
|
|
|
it('should set decimals to legend decimals value if it was set explicitly', () => {
|
2018-05-31 14:18:59 -05:00
|
|
|
panel.decimals = 3;
|
2018-08-26 10:14:40 -05:00
|
|
|
const data = [series];
|
2018-05-31 14:18:59 -05:00
|
|
|
updateLegendValues(data, panel, height);
|
|
|
|
expect(data[0].decimals).toBe(3);
|
|
|
|
});
|
|
|
|
});
|
2017-10-10 07:25:57 -05:00
|
|
|
});
|