69 lines
1.8 KiB
TypeScript
69 lines
1.8 KiB
TypeScript
import { getDashboardUrl } from './getDashboardUrl';
|
|
|
|
describe('dashboard utils', () => {
|
|
it('Can getUrl', () => {
|
|
const url = getDashboardUrl({ uid: 'dash-1', currentQueryParams: '?orgId=1&filter=A' });
|
|
|
|
expect(url).toBe('/d/dash-1?orgId=1&filter=A');
|
|
});
|
|
|
|
it('Can getUrl with subpath', () => {
|
|
const url = getDashboardUrl({
|
|
uid: 'dash-1',
|
|
subPath: '/panel-edit/2',
|
|
currentQueryParams: '?orgId=1&filter=A',
|
|
});
|
|
|
|
expect(url).toBe('/d/dash-1/panel-edit/2?orgId=1&filter=A');
|
|
});
|
|
|
|
it('Can getUrl for a snapshot', () => {
|
|
const url = getDashboardUrl({
|
|
uid: 'dash-1',
|
|
isSnapshot: true,
|
|
currentQueryParams: '?orgId=1&filter=A',
|
|
});
|
|
|
|
expect(url).toBe('/dashboard/snapshot/dash-1?orgId=1&filter=A');
|
|
});
|
|
|
|
it('Can getUrl with slug', () => {
|
|
const url = getDashboardUrl({
|
|
uid: 'dash-1',
|
|
slug: 'dash-1-slug',
|
|
subPath: '/panel-edit/2',
|
|
currentQueryParams: '?orgId=1&filter=A',
|
|
});
|
|
|
|
expect(url).toBe('/d/dash-1/dash-1-slug/panel-edit/2?orgId=1&filter=A');
|
|
});
|
|
|
|
it('Can getURL without shareView param', async () => {
|
|
const url = getDashboardUrl({
|
|
uid: 'dash-1',
|
|
currentQueryParams: '?orgId=1&filter=A&shareView=link',
|
|
});
|
|
|
|
expect(url).toBe('/d/dash-1?orgId=1&filter=A');
|
|
});
|
|
|
|
it('Can getUrl with params removed and added', () => {
|
|
const url = getDashboardUrl({
|
|
uid: 'dash-1',
|
|
currentQueryParams: '?orgId=1&filter=A',
|
|
updateQuery: { filter: null, new: 'A' },
|
|
});
|
|
|
|
expect(url).toBe('/d/dash-1?orgId=1&new=A');
|
|
});
|
|
|
|
it('Empty uid should be treated as a new dashboard', () => {
|
|
const url = getDashboardUrl({
|
|
uid: '',
|
|
currentQueryParams: '?orgId=1&filter=A',
|
|
});
|
|
|
|
expect(url).toBe('/dashboard/new?orgId=1&filter=A');
|
|
});
|
|
});
|