Loki: Fix labels in LabelBrowser being wrongly cached (#64482)

* remove label cache from label browser

* fix spelling

Co-authored-by: Gareth Dawson <gareth.dawson@grafana.com>

---------

Co-authored-by: Gareth Dawson <gareth.dawson@grafana.com>
This commit is contained in:
Sven Grossmann 2023-03-09 11:36:07 +01:00 committed by GitHub
parent 68b588b912
commit 976568a337
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 2 deletions

View File

@ -274,6 +274,40 @@ describe('Request URL', () => {
});
});
describe('fetchLabels', () => {
it('should return labels', async () => {
const datasourceWithLabels = setup({ other: [] });
const instance = new LanguageProvider(datasourceWithLabels);
const labels = await instance.fetchLabels();
expect(labels).toEqual(['other']);
});
it('should set labels', async () => {
const datasourceWithLabels = setup({ other: [] });
const instance = new LanguageProvider(datasourceWithLabels);
await instance.fetchLabels();
expect(instance.labelKeys).toEqual(['other']);
});
it('should return empty array', async () => {
const datasourceWithLabels = setup({});
const instance = new LanguageProvider(datasourceWithLabels);
const labels = await instance.fetchLabels();
expect(labels).toEqual([]);
});
it('should set empty array', async () => {
const datasourceWithLabels = setup({});
const instance = new LanguageProvider(datasourceWithLabels);
await instance.fetchLabels();
expect(instance.labelKeys).toEqual([]);
});
});
describe('Query imports', () => {
const datasource = setup({});

View File

@ -380,6 +380,7 @@ export default class LokiLanguageProvider extends LanguageProvider {
.sort()
.filter((label) => label !== '__name__');
this.labelKeys = labels;
return this.labelKeys;
}
return [];

View File

@ -33,9 +33,9 @@ export const LabelBrowserModal = (props: Props) => {
return;
}
datasource.languageProvider.start().then(() => {
datasource.languageProvider.fetchLabels().then((labels) => {
setLabelsLoaded(true);
setHasLogLabels(datasource.languageProvider.getLabelKeys().length > 0);
setHasLogLabels(labels.length > 0);
});
}, [datasource, isOpen]);