Commit 116b6188 by Erik Sundell Committed by GitHub

CloudWatch: Region template query fix (#20661)

* Make region an optional parameter

* Test region template query
parent 49dfb9a5
...@@ -334,8 +334,8 @@ export default class CloudWatchDatasource extends DataSourceApi<CloudWatchQuery, ...@@ -334,8 +334,8 @@ export default class CloudWatchDatasource extends DataSourceApi<CloudWatchQuery,
return this.doMetricQueryRequest('namespaces', null); return this.doMetricQueryRequest('namespaces', null);
} }
async getMetrics(namespace: string, region: string) { async getMetrics(namespace: string, region?: string) {
if (!namespace || !region) { if (!namespace) {
return []; return [];
} }
......
...@@ -307,6 +307,39 @@ describe('CloudWatchDatasource', () => { ...@@ -307,6 +307,39 @@ describe('CloudWatchDatasource', () => {
}); });
}); });
}); });
describe('when regions query is used', () => {
beforeEach(() => {
ctx.backendSrv.datasourceRequest = jest.fn(() => {
return Promise.resolve({});
});
ctx.ds = new CloudWatchDatasource(instanceSettings, {} as any, backendSrv, templateSrv, timeSrv);
ctx.ds.doMetricQueryRequest = jest.fn(() => []);
});
describe('and region param is left out', () => {
it('should use the default region', done => {
ctx.ds.metricFindQuery('metrics(testNamespace)').then(() => {
expect(ctx.ds.doMetricQueryRequest).toHaveBeenCalledWith('metrics', {
namespace: 'testNamespace',
region: instanceSettings.jsonData.defaultRegion,
});
done();
});
});
});
describe('and region param is defined by user', () => {
it('should use the user defined region', done => {
ctx.ds.metricFindQuery('metrics(testNamespace2, custom-region)').then(() => {
expect(ctx.ds.doMetricQueryRequest).toHaveBeenCalledWith('metrics', {
namespace: 'testNamespace2',
region: 'custom-region',
});
done();
});
});
});
});
}); });
describe('When query region is "default"', () => { describe('When query region is "default"', () => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment