mirror of
https://github.com/grafana/grafana.git
synced 2025-09-22 07:48:21 +08:00

* Correctly pass all original query parameters on interpolation * Add datasource tests - Update props on mock query - Add mock instance settings - Add util function to generate template variables - Add datasource test file - Correct setting of templateSrv - Update betterer results * Simplify test and pass templateSrv appropriately * Fix lint issue * Simplify test and add type that supports parital nested objects * Update test and remove unneeded util function * Rename to avoid duplicate mock
29 lines
1.4 KiB
TypeScript
29 lines
1.4 KiB
TypeScript
import { TemplateSrv } from 'app/features/templating/template_srv';
|
|
|
|
import { createMockInstanceSetttings } from './__mocks__/cloudMonitoringInstanceSettings';
|
|
import { createMockQuery } from './__mocks__/cloudMonitoringQuery';
|
|
import Datasource from './datasource';
|
|
|
|
describe('Cloud Monitoring Datasource', () => {
|
|
describe('interpolateVariablesInQueries', () => {
|
|
it('should leave a query unchanged if there are no template variables', () => {
|
|
const mockInstanceSettings = createMockInstanceSetttings();
|
|
const ds = new Datasource(mockInstanceSettings);
|
|
const query = createMockQuery();
|
|
const templateVariablesApplied = ds.interpolateVariablesInQueries([query], {});
|
|
expect(templateVariablesApplied[0]).toEqual(query);
|
|
});
|
|
|
|
it('should correctly apply template variables', () => {
|
|
const templateSrv = new TemplateSrv();
|
|
templateSrv.replace = jest.fn().mockReturnValue('project-variable');
|
|
const mockInstanceSettings = createMockInstanceSetttings();
|
|
const ds = new Datasource(mockInstanceSettings, templateSrv);
|
|
const query = createMockQuery({ metricQuery: { projectName: '$testVar' } });
|
|
const templatedQuery = ds.interpolateVariablesInQueries([query], {});
|
|
expect(templatedQuery[0]).toHaveProperty('datasource');
|
|
expect(templatedQuery[0].metricQuery.projectName).toEqual('project-variable');
|
|
});
|
|
});
|
|
});
|