chronograf/ui/test/shared/parsing/getRangeForDygraph.test.js

143 lines
3.4 KiB
JavaScript

import getRange from 'shared/parsing/getRangeForDygraph'
const date = new Date()
const max = 20
const mid = 10
const min = 5
const negMax = -20
const kapacitor = {value: null, rangeValue: null, operator: null}
describe('getRangeForDygraphSpec', () => {
it('gets the range for one timeSeries', () => {
const timeSeries = [
[date, min],
[date, mid],
[date, max],
]
const actual = getRange(timeSeries)
const expected = [min, max]
expect(actual).toEqual(expected)
})
it('does not get range when a range is provided', () => {
const timeSeries = [
[date, min],
[date, max],
[date, mid],
]
const providedRange = ['0', '4']
const actual = getRange(timeSeries, providedRange)
expect(actual).toEqual([0, 4])
})
it('gets the range for multiple timeSeries', () => {
const timeSeries = [
[date, null, min],
[date, max, mid],
[date, null, mid],
]
const actual = getRange(timeSeries)
const expected = [min, max]
expect(actual).toEqual(expected)
})
describe('if min and max are equal', () => {
it('it sets min to 0 if they are positive', () => {
const timeSeries = [
[date, max],
[date, max],
[date, max],
]
const actual = getRange(timeSeries)
const expected = [0, max]
expect(actual).toEqual(expected)
})
it('it sets max to 0 if they are negative', () => {
const timeSeries = [
[date, negMax],
[date, negMax],
[date, negMax],
]
const actual = getRange(timeSeries)
const expected = [negMax, 0]
expect(actual).toEqual(expected)
})
})
describe('when user provides a Kapacitor rule value', () => {
const timeSeries = [
[date, max],
[date, mid],
[date, min],
]
it('can pad positive values', () => {
const [actualMin, actualMax] = getRange(timeSeries, undefined, {
...kapacitor,
value: 20,
})
expect(actualMin).toBe(min)
expect(actualMax).toBeGreaterThan(max)
})
it('can pad negative values', () => {
const [actualMin, actualMax] = getRange(timeSeries, undefined, {
...kapacitor,
value: -10,
})
expect(actualMin).toBeLessThan(min)
expect(actualMax).toBe(max)
})
describe('when Kapacitor operator is "lower than" and value is outiside the range', () => {
it('subtracts from a positive value', () => {
const value = 2
const opAndValue = {operator: 'less than', value}
const [actualMin, actualMax] = getRange(timeSeries, undefined, {
...kapacitor,
...opAndValue,
})
expect(actualMin).toBeLessThan(value)
expect(actualMax).toBe(max)
})
})
})
describe('when user provides a Kapacitor rule rangeValue', () => {
const timeSeries = [
[date, max],
[date, min],
[date, mid],
]
it('can pad positive values', () => {
const [actualMin, actualMax] = getRange(timeSeries, undefined, {
...kapacitor,
rangeValue: 20,
})
expect(actualMin).toBe(min)
expect(actualMax).toBeGreaterThan(max)
})
it('can pad negative values', () => {
const [actualMin, actualMax] = getRange(timeSeries, undefined, {
...kapacitor,
rangeValue: -10,
})
expect(actualMin).toBeLessThan(min)
expect(actualMax).toBe(max)
})
})
})