Merge pull request #13805 from grafana/13804-fix-template-variable-check

Update the regex-matching in templateSrv to work with the new variabl…
This commit is contained in:
Torkel Ödegaard
2018-10-24 14:58:13 +02:00
committed by GitHub
2 changed files with 33 additions and 2 deletions
@@ -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) {