Loki: Fix autocomplete when re-editing Loki label values (#31828)

* Allow re-editing of labels in Loki queries

* Update public/app/plugins/datasource/loki/language_provider.ts
This commit is contained in:
Ivana Huckova 2021-03-15 14:11:43 +01:00 committed by GitHub
parent 2fb92789e7
commit 240e65f693
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 1 deletions

View File

@ -167,6 +167,25 @@ describe('Language completion provider', () => {
}, },
]); ]);
}); });
it('returns label values suggestions from Loki when re-editing', async () => {
const datasource = makeMockLokiDatasource({ label1: ['label1_val1', 'label1_val2'], label2: [] });
const provider = await getLanguageProvider(datasource);
const input = createTypeaheadInput('{label1="label1_v"}', 'label1_v', 'label1', 17, [
'attr-value',
'context-labels',
]);
let result = await provider.provideCompletionItems(input);
expect(result.context).toBe('context-label-values');
expect(result.suggestions).toEqual([
{
items: [
{ label: 'label1_val1', filterText: '"label1_val1"' },
{ label: 'label1_val2', filterText: '"label1_val2"' },
],
label: 'Label values for "label1"',
},
]);
});
}); });
describe('label values', () => { describe('label values', () => {

View File

@ -280,7 +280,7 @@ export default class LokiLanguageProvider extends LanguageProvider {
selector = EMPTY_SELECTOR; selector = EMPTY_SELECTOR;
} }
if (!isValueStart && selector === EMPTY_SELECTOR) { if (!labelKey && selector === EMPTY_SELECTOR) {
// start task gets all labels // start task gets all labels
await this.start(); await this.start();
const allLabels = this.getLabelKeys(); const allLabels = this.getLabelKeys();