diff --git a/lib/plugins/aws/provider/awsProvider.js b/lib/plugins/aws/provider/awsProvider.js index 1b4cc8655..cb68ddcd8 100644 --- a/lib/plugins/aws/provider/awsProvider.js +++ b/lib/plugins/aws/provider/awsProvider.js @@ -226,7 +226,7 @@ class AwsProvider { */ request(service, method, params, options) { const that = this; - const credentials = that.getCredentials(); + const credentials = _.cloneDeep(that.getCredentials()); // Make sure options is an object (honors wrong calls of request) const requestOptions = _.isObject(options) ? options : {}; const shouldCache = _.get(requestOptions, 'useCache', false); diff --git a/lib/plugins/aws/provider/awsProvider.test.js b/lib/plugins/aws/provider/awsProvider.test.js index c2952fe88..d3ce0ee92 100644 --- a/lib/plugins/aws/provider/awsProvider.test.js +++ b/lib/plugins/aws/provider/awsProvider.test.js @@ -324,6 +324,7 @@ describe('AwsProvider', () => { }, }, }; + expect(awsProvider.getCredentials()).to.deep.eql({ region: options.region }); return awsProvider .request('CloudFormation', @@ -332,6 +333,8 @@ describe('AwsProvider', () => { { region: 'ap-northeast-1' }) .then(data => { expect(data).to.eql({ region: 'ap-northeast-1' }); + // Requesting different region should not affect region in credentials + expect(awsProvider.getCredentials()).to.deep.eql({ region: options.region }); }); });