mirror of
https://github.com/grafana/grafana.git
synced 2026-08-09 12:48:18 -05:00
* fix: refresh query stats on timerange change * partial fix: request stats update on type in code mode * complete fix: request stats update on type in code mode * fix: update failing tests and props * refactor: pass only essential query string to getQueryStats * refactor: remove unused variables * test: fix datasource.getTimeRange is not a function * refactor: use lodash debounce instead of setTimeout * refactor: add suggestions from code review * test: shouldUpdateStats and makeStatsRequest * refactor: use more appropriate variable names * refactor: make setQueryStats required instead of optional * refactor: move setQueryStats into LokiQueryEditor * fix: add missing props to LokiQueryField * revert changes * refactor: use inversion of control to request stats * refactor: remove unnecessary code
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { render, screen } from '@testing-library/react';
|
|
import React from 'react';
|
|
|
|
import { createLokiDatasource } from '../../mocks';
|
|
import { LokiQuery } from '../../types';
|
|
|
|
import { EXPLAIN_LABEL_FILTER_CONTENT } from './LokiQueryBuilderExplained';
|
|
import { LokiQueryCodeEditor } from './LokiQueryCodeEditor';
|
|
|
|
const defaultQuery: LokiQuery = {
|
|
expr: '{job="bar}',
|
|
refId: 'A',
|
|
};
|
|
|
|
const createDefaultProps = () => {
|
|
const datasource = createLokiDatasource();
|
|
|
|
const props = {
|
|
datasource,
|
|
onRunQuery: () => {},
|
|
onChange: () => {},
|
|
showExplain: false,
|
|
setQueryStats: () => {},
|
|
};
|
|
|
|
return props;
|
|
};
|
|
|
|
describe('LokiQueryCodeEditor', () => {
|
|
it('shows explain section when showExplain is true', async () => {
|
|
const props = createDefaultProps();
|
|
props.showExplain = true;
|
|
props.datasource.metadataRequest = jest.fn().mockResolvedValue([]);
|
|
render(<LokiQueryCodeEditor {...props} query={defaultQuery} />);
|
|
expect(await screen.findByText('Loading...')).toBeInTheDocument();
|
|
expect(screen.getByText(EXPLAIN_LABEL_FILTER_CONTENT)).toBeInTheDocument();
|
|
});
|
|
|
|
it('does not show explain section when showExplain is false', async () => {
|
|
const props = createDefaultProps();
|
|
props.datasource.metadataRequest = jest.fn().mockResolvedValue([]);
|
|
render(<LokiQueryCodeEditor {...props} query={defaultQuery} />);
|
|
expect(await screen.findByText('Loading...')).toBeInTheDocument();
|
|
expect(screen.queryByText(EXPLAIN_LABEL_FILTER_CONTENT)).not.toBeInTheDocument();
|
|
});
|
|
});
|