42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { render, screen } from '@testing-library/react';
|
|
import { ComponentProps } from 'react';
|
|
|
|
import { LokiDatasource } from '../datasource';
|
|
import { LokiQuery } from '../types';
|
|
|
|
import LokiCheatSheet from './LokiCheatSheet';
|
|
|
|
const setup = () => {
|
|
const props: ComponentProps<typeof LokiCheatSheet> = {
|
|
datasource: {
|
|
languageProvider: {
|
|
started: true,
|
|
getLabelKeys: jest.fn().mockReturnValue(['job']),
|
|
fetchLabelValues: jest.fn().mockResolvedValue(['"grafana/data"']),
|
|
},
|
|
} as unknown as LokiDatasource,
|
|
query: {} as unknown as LokiQuery,
|
|
onClickExample: jest.fn(),
|
|
};
|
|
return props;
|
|
};
|
|
|
|
describe('Loki Cheat Sheet', () => {
|
|
beforeEach(() => {
|
|
jest.useFakeTimers();
|
|
});
|
|
|
|
afterEach(() => {
|
|
jest.useRealTimers();
|
|
});
|
|
|
|
it('escapes label values in examples', async () => {
|
|
const props = setup();
|
|
render(<LokiCheatSheet {...props} />);
|
|
jest.runAllTimers();
|
|
|
|
const streamSelector = await screen.findByText('{job="\\"grafana/data\\""}');
|
|
expect(streamSelector).toBeInTheDocument();
|
|
});
|
|
});
|