mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Plugins: InfluxDB variable interpolation fix (#51917)
* Don't use regex on flux mode while applying template variables
This commit is contained in:
@@ -83,7 +83,7 @@ describe('InfluxDataSource', () => {
|
||||
});
|
||||
|
||||
describe('When getting error on 200 after issuing a query', () => {
|
||||
const queryOptions: any = {
|
||||
const queryOptions = {
|
||||
range: {
|
||||
from: '2018-01-01T00:00:00Z',
|
||||
to: '2018-01-02T00:00:00Z',
|
||||
@@ -102,7 +102,7 @@ describe('InfluxDataSource', () => {
|
||||
};
|
||||
|
||||
it('throws an error', async () => {
|
||||
fetchMock.mockImplementation((req: any) => {
|
||||
fetchMock.mockImplementation(() => {
|
||||
return of({
|
||||
data: {
|
||||
results: [
|
||||
@@ -202,11 +202,6 @@ describe('InfluxDataSource', () => {
|
||||
};
|
||||
const ds = new InfluxDatasource(instanceSettings, templateSrv);
|
||||
|
||||
const fluxQuery = {
|
||||
refId: 'x',
|
||||
query: '$interpolationVar,$interpolationVar2',
|
||||
};
|
||||
|
||||
const influxQuery = {
|
||||
refId: 'x',
|
||||
alias: '$interpolationVar',
|
||||
@@ -238,11 +233,6 @@ describe('InfluxDataSource', () => {
|
||||
],
|
||||
};
|
||||
|
||||
function fluxChecks(query: any) {
|
||||
expect(templateSrv.replace).toBeCalledTimes(1);
|
||||
expect(query).toBe(textWithFormatRegex);
|
||||
}
|
||||
|
||||
function influxChecks(query: any) {
|
||||
expect(templateSrv.replace).toBeCalledTimes(10);
|
||||
expect(query.alias).toBe(text);
|
||||
@@ -259,11 +249,16 @@ describe('InfluxDataSource', () => {
|
||||
describe('when interpolating query variables for dashboard->explore', () => {
|
||||
it('should interpolate all variables with Flux mode', () => {
|
||||
ds.isFlux = true;
|
||||
const fluxQuery = {
|
||||
refId: 'x',
|
||||
query: '$interpolationVar,$interpolationVar2',
|
||||
};
|
||||
const queries = ds.interpolateVariablesInQueries([fluxQuery], {
|
||||
interpolationVar: { text: text, value: text },
|
||||
interpolationVar2: { text: text2, value: text2 },
|
||||
});
|
||||
fluxChecks(queries[0].query);
|
||||
expect(templateSrv.replace).toBeCalledTimes(1);
|
||||
expect(queries[0].query).toBe(textWithFormatRegex);
|
||||
});
|
||||
|
||||
it('should interpolate all variables with InfluxQL mode', () => {
|
||||
@@ -279,13 +274,18 @@ describe('InfluxDataSource', () => {
|
||||
describe('when interpolating template variables', () => {
|
||||
it('should apply all template variables with Flux mode', () => {
|
||||
ds.isFlux = true;
|
||||
const fluxQuery = {
|
||||
refId: 'x',
|
||||
query: '$interpolationVar',
|
||||
};
|
||||
const query = ds.applyTemplateVariables(fluxQuery, {
|
||||
interpolationVar: {
|
||||
text: text,
|
||||
value: text,
|
||||
},
|
||||
});
|
||||
fluxChecks(query.query);
|
||||
expect(templateSrv.replace).toBeCalledTimes(1);
|
||||
expect(query.query).toBe(text);
|
||||
});
|
||||
|
||||
it('should apply all template variables with InfluxQL mode', () => {
|
||||
|
||||
Reference in New Issue
Block a user