diff --git a/public/app/plugins/datasource/prometheus/datasource.test.ts b/public/app/plugins/datasource/prometheus/datasource.test.ts index 9e71fe63408..3854ebf0a34 100644 --- a/public/app/plugins/datasource/prometheus/datasource.test.ts +++ b/public/app/plugins/datasource/prometheus/datasource.test.ts @@ -570,6 +570,45 @@ describe('PrometheusDatasource', () => { }); }); + describe('applyTemplateVariables', () => { + it('should call replace function for legendFormat', () => { + const query = { + expr: 'test{job="bar"}', + legendFormat: '$legend', + refId: 'A', + }; + const legend = 'baz'; + templateSrvStub.replace.mockReturnValue(legend); + + const interpolatedQuery = ds.applyTemplateVariables(query, { legend: { text: legend, value: legend } }); + expect(interpolatedQuery.legendFormat).toBe(legend); + }); + + it('should call replace function for expr', () => { + const query = { + expr: 'test{job="$job"}', + refId: 'A', + }; + const job = 'bar'; + templateSrvStub.replace.mockReturnValue(job); + + const interpolatedQuery = ds.applyTemplateVariables(query, { job: { text: job, value: job } }); + expect(interpolatedQuery.expr).toBe(job); + }); + + it('should not call replace function for interval', () => { + const query = { + expr: 'test{job="bar"}', + interval: '$interval', + refId: 'A', + }; + const interval = '10s'; + templateSrvStub.replace.mockReturnValue(interval); + + const interpolatedQuery = ds.applyTemplateVariables(query, { interval: { text: interval, value: interval } }); + expect(interpolatedQuery.interval).not.toBe(interval); + }); + }); describe('metricFindQuery', () => { beforeEach(() => { const query = 'query_result(topk(5,rate(http_request_duration_microseconds_count[$__interval])))'; diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index da9dba15f33..8cd551e8b7f 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -894,6 +894,7 @@ export class PrometheusDatasource extends DataSourceWithBackend