* Explore: updates grafana-data explore query field props with explore mode * Explore: updates query row to pass down explore mode to query fields * Explore: adds LokiExploreQueryEditor * Explore: updates loki query field form to render children * Explore: adds loki explore extra field component * Explore: adds extra field element to loki query field form * Explore: updates loki explore query editor to use extra field element * Explore: moves ExploreMode to grafana-data * Explore: updates query row limit string * Explore: adds maxLines to DataQuery * Explore: adds maxLines to loki datasource runRangeQueryWithFallback * Explore: adds onChangeQueryLimit to LokiExploreQueryEditor * Explore: updates loki explore query editor to render extra field only in logs mode * Explore: fixes query limits for live and legacy queries * Explore: fixes result processor max lines limit in get logs result * Explore: fixes Loki datasource limit test * Explore: removes unnecessary ExploreMode from Loki language provider * Explore: fixes formatting * Explore: updates grafana-data datasource types - replaces strings with explore mode enum * Explore: updates loki explore query field props to take ReactNode * Explore: updates the way we calculate loki query lines limit to fall back to 0 lines on negative or invalid input instead of datasource maxLines * Explore: updates result processor get logs result method to avoid counting invalid/negative line limits * Explore: updates loki result transformer to process only an appropriate slice of a result instead of an entire one * Explore: adds a method for query limit preprocessing/mapping * Explore: updates loki datasource run range query with fallback method to use options.maxDataPoints in dashboards * Explore: removes unnecessary maxlineslimt from getLogsResult in resultProcessor * Explore: moves line limit to metadata * Explore: adds an ability to specify input type of extra field * Explore: updates LokiExploreQueryEditor - adds an input type * Explore: updates LokiExploreQueryEditor to run queries when maxLines is positive * Explore: fixes failing import of ExploreMode * Explore: fixes reducers test imports formatting * Explore: updates Loki extra field with min value set to 0 * Explore: exports LokiExploreExtraFieldProps * Explore: adds render test of LokiExploreQueryEditor * Explore: adds LokiExploreQueryEditor snapshot * Explore: updates LokiExploreQueryEditor onChangeQueryLimit method to prevent it from running when query input is empty - fixes cheatsheet display issue * Explore: updates Loki editor snapshots * Explore: fixes typo in test set name in LokiExploreQueryEditor * Explore: adds a render test of LokiExploreExtraField * Explore: fixes typo in LokiExploreQueryEditor * Explore: updates LokiExploreQueryEditor snapshot due to timezone issues * Explore: updates LokiExploreExtraField to export both functional component and a version using memo * Explore: updates LokiExploreQueryEditor to export both functional component and memoized function * Explore: updates LokiExploreQueryEditor - removes unnecessary react fragment * Explore: updates LokiExploreQueryEditor snapshot * Explore: adds LokiExploreQueryEditor tests for different explore mode cases * Explore: fixes Loki datasource and result transformer * Explore: updates LokiExploreQueryEditor snapshot * Explore: updates LokiExploreQueryEditor tests and test setup * Explore: updates LokiExploreQueryEditor - refactors component * Explore: updates LokiExploreQueryEditor to use default import from LokiExploreExtraField * Explore: updates LokiExploreQueryEditor snapshot * Explore: fixes formatting * Explore: updates LokiExploreQueryEditor max lines change * Explore: updates LokiExploreQueryEditor tests checking ExtraFieldElement * Explore: adds mock loki datasource to LokiExploreQueryEditor * Explore: updates LokiExploreQueryEditor test mock - adds language provider * Explore: updates LokiExploreQueryEditor snapshot * Explore: updates Loki ResultTransformer to filter out rows on limit - logic to be moved into a component with new form styles * Explore: updates LokiExploreQueryEditor tests
96 lines
2.9 KiB
TypeScript
96 lines
2.9 KiB
TypeScript
import React from 'react';
|
|
import { shallow, mount } from 'enzyme';
|
|
import { act } from 'react-dom/test-utils';
|
|
import LokiExploreQueryEditor from './LokiExploreQueryEditor';
|
|
import { LokiExploreExtraField } from './LokiExploreExtraField';
|
|
import { LokiDatasource } from '../datasource';
|
|
import { LokiQuery } from '../types';
|
|
import { ExploreMode, PanelData, LoadingState, dateTime } from '@grafana/data';
|
|
import { makeMockLokiDatasource } from '../mocks';
|
|
import LokiLanguageProvider from '../language_provider';
|
|
|
|
const setup = (renderMethod: any, propOverrides?: object) => {
|
|
const datasource: LokiDatasource = makeMockLokiDatasource({});
|
|
datasource.languageProvider = new LokiLanguageProvider(datasource);
|
|
const onRunQuery = jest.fn();
|
|
const onChange = jest.fn();
|
|
const query: LokiQuery = { expr: '', refId: 'A', maxLines: 0 };
|
|
const data: PanelData = {
|
|
state: LoadingState.NotStarted,
|
|
series: [],
|
|
request: {
|
|
requestId: '1',
|
|
dashboardId: 1,
|
|
interval: '1s',
|
|
panelId: 1,
|
|
range: {
|
|
from: dateTime('2020-01-01', 'YYYY-MM-DD'),
|
|
to: dateTime('2020-01-02', 'YYYY-MM-DD'),
|
|
raw: {
|
|
from: dateTime('2020-01-01', 'YYYY-MM-DD'),
|
|
to: dateTime('2020-01-02', 'YYYY-MM-DD'),
|
|
},
|
|
},
|
|
scopedVars: {},
|
|
targets: [],
|
|
timezone: 'GMT',
|
|
app: 'Grafana',
|
|
startTime: 0,
|
|
},
|
|
timeRange: {
|
|
from: dateTime('2020-01-01', 'YYYY-MM-DD'),
|
|
to: dateTime('2020-01-02', 'YYYY-MM-DD'),
|
|
raw: {
|
|
from: dateTime('2020-01-01', 'YYYY-MM-DD'),
|
|
to: dateTime('2020-01-02', 'YYYY-MM-DD'),
|
|
},
|
|
},
|
|
};
|
|
const history: any[] = [];
|
|
const exploreMode: ExploreMode = ExploreMode.Logs;
|
|
|
|
const props: any = {
|
|
query,
|
|
data,
|
|
datasource,
|
|
exploreMode,
|
|
history,
|
|
onChange,
|
|
onRunQuery,
|
|
};
|
|
|
|
Object.assign(props, { ...props, ...propOverrides });
|
|
return renderMethod(<LokiExploreQueryEditor {...props} />);
|
|
};
|
|
|
|
describe('LokiExploreQueryEditor', () => {
|
|
let originalGetSelection: typeof window.getSelection;
|
|
beforeAll(() => {
|
|
originalGetSelection = window.getSelection;
|
|
window.getSelection = () => null;
|
|
});
|
|
|
|
afterAll(() => {
|
|
window.getSelection = originalGetSelection;
|
|
});
|
|
|
|
it('should render component', () => {
|
|
const wrapper = setup(shallow);
|
|
expect(wrapper).toMatchSnapshot();
|
|
});
|
|
|
|
it('should render LokiQueryField with ExtraFieldElement when ExploreMode is set to Logs', async () => {
|
|
await act(async () => {
|
|
const wrapper = setup(mount);
|
|
expect(wrapper.find(LokiExploreExtraField).length).toBe(1);
|
|
});
|
|
});
|
|
|
|
it('should render LokiQueryField with no ExtraFieldElement when ExploreMode is not Logs', async () => {
|
|
await act(async () => {
|
|
const wrapper = setup(mount, { exploreMode: ExploreMode.Metrics });
|
|
expect(wrapper.find(LokiExploreExtraField).length).toBe(0);
|
|
});
|
|
});
|
|
});
|