Ver Fonte

Merge pull request #15018 from miroswan/14961-constructor-as-rvalue

Bug Fix #14961
Torkel Ödegaard há 7 anos atrás
pai
commit
f3dc5381ee

+ 11 - 0
public/app/features/templating/specs/template_srv.test.ts

@@ -469,6 +469,11 @@ describe('templateSrv', () => {
           name: 'empty_on_init',
           current: { value: '', text: '' },
         },
+        {
+          type: 'custom',
+          name: 'foo',
+          current: { value: 'constructor', text: 'constructor' },
+        }
       ]);
       _templateSrv.setGrafanaVariable('$__auto_interval_interval', '13m');
       _templateSrv.updateTemplateData();
@@ -483,6 +488,12 @@ describe('templateSrv', () => {
       const target = _templateSrv.replaceWithText('Hello $empty_on_init');
       expect(target).toBe('Hello ');
     });
+
+    it('should not return a string representation of a constructor property', () => {
+      const target = _templateSrv.replaceWithText('$foo');
+      expect(target).not.toBe('function Object() { [native code] }');
+      expect(target).toBe('constructor');
+    });
   });
 
   describe('built in interval variables', () => {

+ 3 - 1
public/app/features/templating/template_srv.ts

@@ -254,7 +254,9 @@ export class TemplateSrv {
         return match;
       }
 
-      return this.grafanaVariables[variable.current.value] || variable.current.text;
+      const value = this.grafanaVariables[variable.current.value];
+
+      return typeof(value) === 'string' ? value : variable.current.text;
     });
   }