mirror of
https://github.com/grafana/grafana.git
synced 2026-07-30 00:08:10 -05:00
DataSourceWithBackend: Fix adhoc filters not passed to applyTemplateVariables (#75812)
This commit is contained in:
@@ -9,6 +9,8 @@ import {
|
||||
DataSourceJsonData,
|
||||
DataSourceRef,
|
||||
createDataFrame,
|
||||
AdHocVariableFilter,
|
||||
ScopedVars,
|
||||
} from '@grafana/data';
|
||||
|
||||
import { config } from '../config';
|
||||
@@ -21,10 +23,19 @@ import {
|
||||
} from './DataSourceWithBackend';
|
||||
import { publicDashboardQueryHandler } from './publicDashboardQueryHandler';
|
||||
|
||||
class MyDataSource extends DataSourceWithBackend<DataQuery, DataSourceJsonData> {
|
||||
interface MyQuery extends DataQuery {
|
||||
filters?: AdHocVariableFilter[];
|
||||
applyTemplateVariablesCalled?: boolean;
|
||||
}
|
||||
|
||||
class MyDataSource extends DataSourceWithBackend<MyQuery, DataSourceJsonData> {
|
||||
constructor(instanceSettings: DataSourceInstanceSettings<DataSourceJsonData>) {
|
||||
super(instanceSettings);
|
||||
}
|
||||
|
||||
applyTemplateVariables(query: MyQuery, scopedVars: ScopedVars, filters?: AdHocVariableFilter[] | undefined): MyQuery {
|
||||
return { ...query, applyTemplateVariablesCalled: true, filters };
|
||||
}
|
||||
}
|
||||
|
||||
const mockDatasourceRequest = jest.fn<Promise<FetchResponse>, BackendSrvRequest[]>();
|
||||
@@ -58,6 +69,7 @@ describe('DataSourceWithBackend', () => {
|
||||
targets: [{ refId: 'A' }, { refId: 'B', datasource: { type: 'sample' } }],
|
||||
dashboardUID: 'dashA',
|
||||
panelId: 123,
|
||||
filters: [{ key: 'key1', operator: '=', value: 'val1' }],
|
||||
queryGroupId: 'abc',
|
||||
} as DataQueryRequest);
|
||||
|
||||
@@ -69,11 +81,19 @@ describe('DataSourceWithBackend', () => {
|
||||
"data": {
|
||||
"queries": [
|
||||
{
|
||||
"applyTemplateVariablesCalled": true,
|
||||
"datasource": {
|
||||
"type": "dummy",
|
||||
"uid": "abc",
|
||||
},
|
||||
"datasourceId": 1234,
|
||||
"filters": [
|
||||
{
|
||||
"key": "key1",
|
||||
"operator": "=",
|
||||
"value": "val1",
|
||||
},
|
||||
],
|
||||
"intervalMs": 5000,
|
||||
"maxDataPoints": 10,
|
||||
"queryCachingTTL": undefined,
|
||||
@@ -126,11 +146,13 @@ describe('DataSourceWithBackend', () => {
|
||||
"data": {
|
||||
"queries": [
|
||||
{
|
||||
"applyTemplateVariablesCalled": true,
|
||||
"datasource": {
|
||||
"type": "dummy",
|
||||
"uid": "abc",
|
||||
},
|
||||
"datasourceId": 1234,
|
||||
"filters": undefined,
|
||||
"intervalMs": 5000,
|
||||
"maxDataPoints": 10,
|
||||
"queryCachingTTL": undefined,
|
||||
@@ -194,11 +216,13 @@ describe('DataSourceWithBackend', () => {
|
||||
"data": {
|
||||
"queries": [
|
||||
{
|
||||
"applyTemplateVariablesCalled": true,
|
||||
"datasource": {
|
||||
"type": "dummy",
|
||||
"uid": "abc",
|
||||
},
|
||||
"datasourceId": 1234,
|
||||
"filters": undefined,
|
||||
"intervalMs": 5000,
|
||||
"maxDataPoints": 10,
|
||||
"queryCachingTTL": undefined,
|
||||
|
||||
@@ -176,7 +176,7 @@ class DataSourceWithBackend<
|
||||
dsUIDs.add(datasource.uid);
|
||||
}
|
||||
return {
|
||||
...(shouldApplyTemplateVariables ? this.applyTemplateVariables(q, request.scopedVars) : q),
|
||||
...(shouldApplyTemplateVariables ? this.applyTemplateVariables(q, request.scopedVars, request.filters) : q),
|
||||
datasource,
|
||||
datasourceId, // deprecated!
|
||||
intervalMs,
|
||||
|
||||
Reference in New Issue
Block a user