Skip to content

Commit 91b7fc0

Browse files
committed
replace template variables in query
1 parent d42eaf6 commit 91b7fc0

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

.circleci/config.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,5 @@ jobs:
7777
- coverage/lcov.info
7878
- store_artifacts:
7979
path: ci
80-
- store_artifacts:
81-
path: coverage/lcov.info
8280
- store_test_results:
83-
path: coverage
81+
path: ci/jobs/build/coverage

src/buttonPanel.test.tsx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@ import {
55
LoadingState,
66
PanelProps,
77
} from '@grafana/data';
8-
import { getBackendSrv, getDataSourceSrv, SystemJS } from '@grafana/runtime';
8+
import {
9+
getBackendSrv,
10+
getDataSourceSrv,
11+
getTemplateSrv,
12+
SystemJS,
13+
} from '@grafana/runtime';
914
import { Button, HorizontalGroup, VerticalGroup } from '@grafana/ui';
1015
import { shallow } from 'enzyme';
1116
import React from 'react';
@@ -64,6 +69,10 @@ describe('button panel', () => {
6469
];
6570
wrapper.setProps({ options: { buttons: buttons } });
6671

72+
const mockTemplate = jest.fn().mockReturnValue('{}');
73+
(getTemplateSrv as jest.Mock<any>).mockImplementation(() => ({
74+
replace: mockTemplate,
75+
}));
6776
const mockGet = jest.fn().mockReturnValue({ id: 1 });
6877
(getDataSourceSrv as jest.Mock<any>).mockImplementation(() => ({
6978
get: mockGet,
@@ -88,6 +97,7 @@ describe('button panel', () => {
8897
expect(b.text()).toBe(buttons[i].text);
8998
b.simulate('click');
9099
setImmediate(() => {
100+
expect(mockTemplate).toHaveBeenCalled();
91101
expect(mockGet).toHaveBeenCalledWith(buttons[i].datasource);
92102
expect(mockDataSourceRequest).toHaveBeenCalled();
93103
expect(mockEmit).toHaveBeenCalledWith(AppEvents.alertSuccess, [
@@ -108,6 +118,10 @@ describe('button panel', () => {
108118
(getDataSourceSrv as jest.Mock<any>).mockImplementation(() => ({
109119
get: mockGet,
110120
}));
121+
const mockTemplate = jest.fn().mockReturnValue('{}');
122+
(getTemplateSrv as jest.Mock<any>).mockImplementation(() => ({
123+
replace: mockTemplate,
124+
}));
111125
const msg = 'msg';
112126
const mockDataSourceRequest = jest.fn().mockRejectedValue({
113127
status: statusError,

src/buttonPanel.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { AppEvents, PanelProps } from '@grafana/data';
2-
import { getBackendSrv, getDataSourceSrv, SystemJS } from '@grafana/runtime';
2+
import {
3+
getBackendSrv,
4+
getDataSourceSrv,
5+
getTemplateSrv,
6+
SystemJS,
7+
} from '@grafana/runtime';
38
import { Button, HorizontalGroup, VerticalGroup } from '@grafana/ui';
49
import React from 'react';
510
import { ButtonOptions, Options } from 'types';
@@ -15,7 +20,9 @@ export const ButtonPanel: React.FC<Props> = ({ options }) => {
1520
key={index}
1621
variant={b.variant}
1722
onClick={async () => {
18-
const payload = JSON.parse(b.query || '{}');
23+
const payload = JSON.parse(
24+
await getTemplateSrv().replace(b.query || '{}')
25+
);
1926
const ds = await getDataSourceSrv().get(b.datasource);
2027
try {
2128
const resp = await getBackendSrv().datasourceRequest({

0 commit comments

Comments
 (0)