Loki: Fix missing timerange in query builder values request (#80829)

Loki: Fix missing timerange in query builder values
This commit is contained in:
Sven Grossmann 2024-01-18 17:39:09 +01:00 committed by GitHub
parent b8cf8ec8d7
commit ded941eb84
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 1 deletions

View File

@ -57,6 +57,26 @@ describe('LokiQueryBuilder', () => {
await waitFor(() => expect(screen.getByText('job')).toBeInTheDocument());
});
it('does refetch label values with the correct timerange', async () => {
const props = createDefaultProps();
props.datasource.getDataSamples = jest.fn().mockResolvedValue([]);
props.datasource.languageProvider.fetchSeriesLabels = jest
.fn()
.mockReturnValue({ job: ['a'], instance: ['b'], baz: ['bar'] });
render(<LokiQueryBuilder {...props} query={defaultQuery} />);
await userEvent.click(screen.getByLabelText('Add'));
const labels = screen.getByText(/Label filters/);
const selects = getAllByRole(getSelectParent(labels)!, 'combobox');
await userEvent.click(selects[3]);
await waitFor(() => expect(screen.getByText('job')).toBeInTheDocument());
await userEvent.click(screen.getByText('job'));
await userEvent.click(selects[5]);
expect(props.datasource.languageProvider.fetchSeriesLabels).toHaveBeenNthCalledWith(2, '{baz="bar"}', {
timeRange: mockTimeRange,
});
});
it('does not show already existing label names as option in label filter', async () => {
const props = createDefaultProps();
props.datasource.getDataSamples = jest.fn().mockResolvedValue([]);

View File

@ -78,7 +78,7 @@ export const LokiQueryBuilder = React.memo<Props>(
values = await datasource.languageProvider.fetchLabelValues(forLabel.label, { timeRange });
} else {
const expr = lokiQueryModeller.renderLabels(labelsToConsider);
const result = await datasource.languageProvider.fetchSeriesLabels(expr);
const result = await datasource.languageProvider.fetchSeriesLabels(expr, { timeRange });
values = result[datasource.interpolateString(forLabel.label)];
}