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); }); });