CloudWatch: Region template query fix (#20661)

* Make region an optional parameter

* Test region template query

(cherry picked from commit 116b6188a6)
This commit is contained in:
Erik Sundell
2019-11-28 08:43:49 +01:00
committed by Hugo Häggmark
parent 89f6dd2348
commit e3db87d27a
2 changed files with 35 additions and 2 deletions
@@ -334,8 +334,8 @@ export default class CloudWatchDatasource extends DataSourceApi<CloudWatchQuery,
return this.doMetricQueryRequest('namespaces', null);
}
async getMetrics(namespace: string, region: string) {
if (!namespace || !region) {
async getMetrics(namespace: string, region?: string) {
if (!namespace) {
return [];
}
@@ -303,6 +303,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"', () => {