diff --git a/public/app/plugins/datasource/loki/LanguageProvider.test.ts b/public/app/plugins/datasource/loki/LanguageProvider.test.ts index e57116ae9ff..3a71831085c 100644 --- a/public/app/plugins/datasource/loki/LanguageProvider.test.ts +++ b/public/app/plugins/datasource/loki/LanguageProvider.test.ts @@ -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({}); diff --git a/public/app/plugins/datasource/loki/LanguageProvider.ts b/public/app/plugins/datasource/loki/LanguageProvider.ts index 47936a29d4b..3e27c5f87ba 100644 --- a/public/app/plugins/datasource/loki/LanguageProvider.ts +++ b/public/app/plugins/datasource/loki/LanguageProvider.ts @@ -380,6 +380,7 @@ export default class LokiLanguageProvider extends LanguageProvider { .sort() .filter((label) => label !== '__name__'); this.labelKeys = labels; + return this.labelKeys; } return []; diff --git a/public/app/plugins/datasource/loki/querybuilder/components/LabelBrowserModal.tsx b/public/app/plugins/datasource/loki/querybuilder/components/LabelBrowserModal.tsx index 3c79b9f9fd7..35dc7595f25 100644 --- a/public/app/plugins/datasource/loki/querybuilder/components/LabelBrowserModal.tsx +++ b/public/app/plugins/datasource/loki/querybuilder/components/LabelBrowserModal.tsx @@ -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]);