Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
explore
/
hooks
/
useStateSync
/
migrators
/
File Content:
v0.test.ts
import { DEFAULT_RANGE } from 'app/features/explore/state/utils'; import { v0Migrator } from './v0'; describe('v0 migrator', () => { describe('parse', () => { it('returns default state on empty string', () => { expect(v0Migrator.parse({}).to).toMatchObject({ left: { datasource: null, queries: [], range: DEFAULT_RANGE, }, }); }); it('returns a valid Explore state from URL parameter', () => { const paramValue = '{"datasource":"Local","queries":[{"expr":"metric"}],"range":{"from":"now-1h","to":"now"}}'; expect(v0Migrator.parse({ left: paramValue }).to).toMatchObject({ left: { datasource: 'Local', queries: [{ expr: 'metric' }], range: { from: 'now-1h', to: 'now', }, }, }); }); it('returns a valid Explore state from right URL parameter', () => { const paramValue = '{"datasource":"Local","queries":[{"expr":"metric"}],"range":{"from":"now-1h","to":"now"}}'; expect(v0Migrator.parse({ right: paramValue }).to).toMatchObject({ right: { datasource: 'Local', queries: [{ expr: 'metric' }], range: { from: 'now-1h', to: 'now', }, }, }); }); it('returns a default state from invalid right URL parameter', () => { const paramValue = 10; expect(v0Migrator.parse({ right: paramValue }).to).toMatchObject({ right: { datasource: null, queries: [], range: DEFAULT_RANGE, }, }); }); it('returns a valid Explore state from a compact URL parameter', () => { const paramValue = '["now-1h","now","Local",{"expr":"metric"},{"ui":[true,true,true,"none"],"__panelsState":{"logs":"1"}}]'; expect(v0Migrator.parse({ left: paramValue }).to).toMatchObject({ left: { datasource: 'Local', queries: [{ expr: 'metric' }], range: { from: 'now-1h', to: 'now', }, panelsState: { logs: '1', }, }, }); }); it('returns default state on compact URLs with too few segments ', () => { const paramValue = '["now-1h",{"expr":"metric"},{"ui":[true,true,true,"none"]}]'; expect(v0Migrator.parse({ left: paramValue }).to).toMatchObject({ left: { datasource: null, queries: [], range: DEFAULT_RANGE, }, }); }); it('should not return a query for mode in the url', () => { // Previous versions of Grafana included "Explore mode" in the URL; this should not be treated as a query. const paramValue = '["now-1h","now","x-ray-datasource",{"queryType":"getTraceSummaries"},{"mode":"Metrics"},{"ui":[true,true,true,"none"]}]'; expect(v0Migrator.parse({ left: paramValue }).to).toMatchObject({ left: { datasource: 'x-ray-datasource', queries: [{ queryType: 'getTraceSummaries' }], range: { from: 'now-1h', to: 'now', }, }, }); }); it('should return queries if queryType is present in the url', () => { const paramValue = '["now-1h","now","x-ray-datasource",{"queryType":"getTraceSummaries"},{"ui":[true,true,true,"none"]}]'; expect(v0Migrator.parse({ left: paramValue }).to).toMatchObject({ left: { datasource: 'x-ray-datasource', queries: [{ queryType: 'getTraceSummaries' }], range: { from: 'now-1h', to: 'now', }, }, }); }); }); });
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
types.ts
529 bytes
0644
v0.test.ts
3705 bytes
0644
v0.ts
2822 bytes
0644
v1.test.ts
2711 bytes
0644
v1.ts
3224 bytes
0644
N4ST4R_ID | Naxtarrr