2025-04-01 10:38:02 +09:00

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