diff --git a/public/app/plugins/datasource/cloudwatch/datasource.ts b/public/app/plugins/datasource/cloudwatch/datasource.ts index ce9b11af910..5fe443e780c 100644 --- a/public/app/plugins/datasource/cloudwatch/datasource.ts +++ b/public/app/plugins/datasource/cloudwatch/datasource.ts @@ -334,8 +334,8 @@ export default class CloudWatchDatasource extends DataSourceApi { }); }); }); + + 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"', () => {