143 lines
3.4 KiB
JavaScript
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)
|
|
})
|
|
})
|
|
})
|