mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 08:35:43 -06:00
* RefreshPicker: Fixes so refresh intervals from url are visible in RefreshPicker * Refactor: changes after PR comments * Chore: adds comment
76 lines
3.4 KiB
TypeScript
76 lines
3.4 KiB
TypeScript
import { getRefreshFromUrl } from './getRefreshFromUrl';
|
|
|
|
describe('getRefreshFromUrl', () => {
|
|
describe('when refresh is not part of params', () => {
|
|
it('then it should return current refresh value', () => {
|
|
const params = {};
|
|
const currentRefresh = false;
|
|
const minRefreshInterval = '5s';
|
|
const isAllowedIntervalFn = () => false;
|
|
|
|
const actual = getRefreshFromUrl({
|
|
params,
|
|
currentRefresh,
|
|
minRefreshInterval,
|
|
isAllowedIntervalFn,
|
|
});
|
|
|
|
expect(actual).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe('when refresh is part of params', () => {
|
|
describe('and refresh is an existing and valid interval', () => {
|
|
it('then it should return the refresh value', () => {
|
|
const params = { refresh: '10s' };
|
|
const currentRefresh = '';
|
|
const minRefreshInterval = '5s';
|
|
const isAllowedIntervalFn = () => true;
|
|
const refreshIntervals = ['5s', '10s', '30s'];
|
|
|
|
const actual = getRefreshFromUrl({
|
|
params,
|
|
currentRefresh,
|
|
minRefreshInterval,
|
|
isAllowedIntervalFn,
|
|
refreshIntervals,
|
|
});
|
|
|
|
expect(actual).toBe('10s');
|
|
});
|
|
});
|
|
|
|
it.each`
|
|
refresh | isAllowedInterval | minRefreshInterval | refreshIntervals | expected
|
|
${'6s'} | ${true} | ${'1s'} | ${['5s', '6s', '10s', '30s']} | ${'6s'}
|
|
${'6s'} | ${true} | ${'10s'} | ${['5s', '10s', '30s']} | ${'10s'}
|
|
${'6s'} | ${true} | ${'1s'} | ${['5s', '10s', '30s']} | ${'5s'}
|
|
${'6s'} | ${true} | ${'1s'} | ${undefined} | ${'5s'}
|
|
${'6s'} | ${true} | ${'10s'} | ${undefined} | ${'10s'}
|
|
${'6s'} | ${true} | ${'1s'} | ${[]} | ${'currentRefresh'}
|
|
${'6s'} | ${true} | ${'10s'} | ${[]} | ${'currentRefresh'}
|
|
${'6s'} | ${false} | ${'1s'} | ${['5s', '6s', '10s', '30s']} | ${'5s'}
|
|
${'6s'} | ${false} | ${'10s'} | ${['5s', '6s', '10s', '30s']} | ${'10s'}
|
|
${'6s'} | ${false} | ${'1s'} | ${['5s', '10s', '30s']} | ${'5s'}
|
|
${'6s'} | ${false} | ${'10s'} | ${['5s', '10s', '30s']} | ${'10s'}
|
|
${'6s'} | ${false} | ${'1s'} | ${undefined} | ${'5s'}
|
|
${'6s'} | ${false} | ${'10s'} | ${undefined} | ${'10s'}
|
|
${'6s'} | ${false} | ${'1s'} | ${[]} | ${'currentRefresh'}
|
|
${'6s'} | ${false} | ${'10s'} | ${[]} | ${'currentRefresh'}
|
|
`(
|
|
'when called with refresh:{$refresh}, isAllowedInterval:{$isAllowedInterval}, minRefreshInterval:{$minRefreshInterval}, refreshIntervals:{$refreshIntervals} then it should return: $expected',
|
|
({ refresh, isAllowedInterval, minRefreshInterval, refreshIntervals, expected }) => {
|
|
const actual = getRefreshFromUrl({
|
|
params: { refresh },
|
|
currentRefresh: 'currentRefresh',
|
|
minRefreshInterval,
|
|
isAllowedIntervalFn: () => isAllowedInterval,
|
|
refreshIntervals,
|
|
});
|
|
|
|
expect(actual).toBe(expected);
|
|
}
|
|
);
|
|
});
|
|
});
|