mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
|
import { SceneTimeRange } from './SceneTimeRange';
|
||
|
|
||
|
describe('SceneTimeRange', () => {
|
||
|
it('when created should evaluate time range', () => {
|
||
|
const timeRange = new SceneTimeRange({ from: 'now-1h', to: 'now' });
|
||
|
expect(timeRange.state.value.raw.from).toBe('now-1h');
|
||
|
});
|
||
|
|
||
|
it('when time range refreshed should evaluate and update value', async () => {
|
||
|
const timeRange = new SceneTimeRange({ from: 'now-30s', to: 'now' });
|
||
|
const startTime = timeRange.state.value.from.valueOf();
|
||
|
await new Promise((r) => setTimeout(r, 2));
|
||
|
timeRange.onRefresh();
|
||
|
const diff = timeRange.state.value.from.valueOf() - startTime;
|
||
|
expect(diff).toBeGreaterThan(1);
|
||
|
});
|
||
|
|
||
|
it('toUrlValues with relative range', () => {
|
||
|
const timeRange = new SceneTimeRange({ from: 'now-1h', to: 'now' });
|
||
|
expect(timeRange.urlSync?.getUrlState(timeRange.state)).toEqual({
|
||
|
from: 'now-1h',
|
||
|
to: 'now',
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('updateFromUrl with ISO time', () => {
|
||
|
const timeRange = new SceneTimeRange({ from: 'now-1h', to: 'now' });
|
||
|
timeRange.urlSync?.updateFromUrl({
|
||
|
from: '2021-01-01T10:00:00.000Z',
|
||
|
to: '2021-02-03T01:20:00.000Z',
|
||
|
});
|
||
|
|
||
|
expect(timeRange.state.from).toEqual('2021-01-01T10:00:00.000Z');
|
||
|
expect(timeRange.state.value.from.valueOf()).toEqual(1609495200000);
|
||
|
});
|
||
|
});
|