mirror of https://github.com/grafana/grafana
Expressions: Add support for variables (#41778)
parent
42e547d27f
commit
c8bb01d1ad
@ -0,0 +1,37 @@ |
||||
import { DataSourceInstanceSettings } from '@grafana/data'; |
||||
import { backendSrv } from 'app/core/services/backend_srv'; |
||||
import { ExpressionDatasourceApi } from './ExpressionDatasource'; |
||||
import { ExpressionQueryType } from './types'; |
||||
|
||||
jest.mock('@grafana/runtime', () => ({ |
||||
...(jest.requireActual('@grafana/runtime') as unknown as object), |
||||
getBackendSrv: () => backendSrv, |
||||
getTemplateSrv: () => ({ |
||||
replace: (val: string) => (val ? val.replace('$input', '10').replace('$window', '10s') : val), |
||||
}), |
||||
})); |
||||
|
||||
describe('ExpressionDatasourceApi', () => { |
||||
beforeEach(() => { |
||||
jest.clearAllMocks(); |
||||
}); |
||||
|
||||
describe('expression queries with template variables', () => { |
||||
it('should interpolate template variables in expression query', () => { |
||||
const ds = new ExpressionDatasourceApi({} as DataSourceInstanceSettings); |
||||
const query = ds.applyTemplateVariables( |
||||
{ type: ExpressionQueryType.math, refId: 'B', expression: '$input + 5 + $A' }, |
||||
{} |
||||
); |
||||
expect(query.expression).toBe('10 + 5 + $A'); |
||||
}); |
||||
it('should interpolate template variables in expression query', () => { |
||||
const ds = new ExpressionDatasourceApi({} as DataSourceInstanceSettings); |
||||
const query = ds.applyTemplateVariables( |
||||
{ type: ExpressionQueryType.resample, refId: 'B', window: '$window' }, |
||||
{} |
||||
); |
||||
expect(query.window).toBe('10s'); |
||||
}); |
||||
}); |
||||
}); |
||||
Loading…
Reference in new issue