mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Update the regex-matching in templateSrv to work with the new variable-syntax and be more flexible to regex-changes #13804
This commit is contained in:
parent
a6fc74e35b
commit
b880f8d548
@ -286,10 +286,40 @@ describe('templateSrv', () => {
|
|||||||
initTemplateSrv([{ type: 'query', name: 'test', current: { value: 'oogle' } }]);
|
initTemplateSrv([{ type: 'query', name: 'test', current: { value: 'oogle' } }]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return true if exists', () => {
|
it('should return true if $test exists', () => {
|
||||||
const result = _templateSrv.variableExists('$test');
|
const result = _templateSrv.variableExists('$test');
|
||||||
expect(result).toBe(true);
|
expect(result).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return true if $test exists in string', () => {
|
||||||
|
const result = _templateSrv.variableExists('something $test something');
|
||||||
|
expect(result).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true if [[test]] exists in string', () => {
|
||||||
|
const result = _templateSrv.variableExists('something [[test]] something');
|
||||||
|
expect(result).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true if [[test:csv]] exists in string', () => {
|
||||||
|
const result = _templateSrv.variableExists('something [[test:csv]] something');
|
||||||
|
expect(result).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true if ${test} exists in string', () => {
|
||||||
|
const result = _templateSrv.variableExists('something ${test} something');
|
||||||
|
expect(result).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true if ${test:raw} exists in string', () => {
|
||||||
|
const result = _templateSrv.variableExists('something ${test:raw} something');
|
||||||
|
expect(result).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return null if there are no variables in string', () => {
|
||||||
|
const result = _templateSrv.variableExists('string without variables');
|
||||||
|
expect(result).toBe(null);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('can highlight variables in string', () => {
|
describe('can highlight variables in string', () => {
|
||||||
|
@ -136,7 +136,8 @@ export class TemplateSrv {
|
|||||||
if (!match) {
|
if (!match) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return match[1] || match[2];
|
const variableName = match.slice(1).find(match => match !== undefined);
|
||||||
|
return variableName;
|
||||||
}
|
}
|
||||||
|
|
||||||
variableExists(expression) {
|
variableExists(expression) {
|
||||||
|
Loading…
Reference in New Issue
Block a user