Commit b880f8d5 by Johannes Schill

Update the regex-matching in templateSrv to work with the new variable-syntax…

Update the regex-matching in templateSrv to work with the new variable-syntax and be more flexible to regex-changes #13804
parent a6fc74e3
......@@ -286,10 +286,40 @@ describe('templateSrv', () => {
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');
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', () => {
......
......@@ -136,7 +136,8 @@ export class TemplateSrv {
if (!match) {
return null;
}
return match[1] || match[2];
const variableName = match.slice(1).find(match => match !== undefined);
return variableName;
}
variableExists(expression) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment