Files
grafana/public/app/features/explore/spec/interpolation.test.tsx
T
Piotr JamrózandGiordano Ricci 975edf14dc Explore: Unify spec setup (#73994)
* Simplify Explore spec setup

* Update public/app/features/explore/spec/helper/setup.tsx

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

---------

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2023-09-05 13:05:11 +02:00

68 lines
2.1 KiB
TypeScript

import React from 'react';
import { DataQueryRequest, EventBusSrv, serializeStateToUrlParam } from '@grafana/data';
import { getTemplateSrv } from '@grafana/runtime';
import { LokiQuery } from '../../../plugins/datasource/loki/types';
import { makeLogsQueryResponse } from './helper/query';
import { setupExplore, tearDown, waitForExplore } from './helper/setup';
const testEventBus = new EventBusSrv();
jest.mock('@grafana/runtime', () => ({
...jest.requireActual('@grafana/runtime'),
getAppEvents: () => testEventBus,
}));
jest.mock('app/core/core', () => ({
contextSrv: {
hasAccess: () => true,
getValidIntervals: (defaultIntervals: string[]) => defaultIntervals,
},
}));
jest.mock('react-virtualized-auto-sizer', () => {
return {
__esModule: true,
default(props: any) {
return <div>{props.children({ width: 1000 })}</div>;
},
};
});
describe('Explore: interpolation', () => {
afterEach(() => {
tearDown();
});
// support-escalations/issues/1459
it('Time is interpolated when explore is opened with a URL', async () => {
const urlParams = {
left: serializeStateToUrlParam({
datasource: 'loki',
queries: [{ refId: 'A', expr: '{ job="a", from="${__from}", to="${__to}" }' }],
range: { from: '1600000000000', to: '1700000000000' },
}),
right: serializeStateToUrlParam({
datasource: 'loki',
queries: [{ refId: 'b', expr: '{ job="b", from="${__from}", to="${__to}" }' }],
range: { from: '1800000000000', to: '1900000000000' },
}),
};
const { datasources } = setupExplore({ urlParams });
const fakeFetch = jest.fn();
(datasources.loki.query as jest.Mock).mockImplementation((request: DataQueryRequest<LokiQuery>) => {
fakeFetch(getTemplateSrv().replace(request.targets[0]!.expr));
return makeLogsQueryResponse();
});
await waitForExplore();
expect(fakeFetch).toBeCalledTimes(2);
expect(fakeFetch).toHaveBeenCalledWith('{ job="a", from="1600000000000", to="1700000000000" }');
expect(fakeFetch).toHaveBeenCalledWith('{ job="b", from="1800000000000", to="1900000000000" }');
});
});