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 = { 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(); jest.runAllTimers(); const streamSelector = await screen.findByText('{job="\\"grafana/data\\""}'); expect(streamSelector).toBeInTheDocument(); }); });