diff --git a/lib/shared/s3-packages.js b/lib/shared/s3-packages.js index 7fe8f24e..6d770e13 100644 --- a/lib/shared/s3-packages.js +++ b/lib/shared/s3-packages.js @@ -152,6 +152,8 @@ exports.getRemoteVersions = _.memoize((bucketUrl) => { code: 'ECONNRESET' }, { code: 'ECONNREFUSED' + }, { + code: 'EACCES' }, { code: 'ETIMEDOUT' }, () => { diff --git a/tests/shared/s3-packages.spec.js b/tests/shared/s3-packages.spec.js index 3aeedd55..0bbe6f6a 100644 --- a/tests/shared/s3-packages.spec.js +++ b/tests/shared/s3-packages.spec.js @@ -689,6 +689,29 @@ describe('Shared: s3Packages', function() { }); + describe('given EACCES', function() { + + beforeEach(function() { + const error = new Error('EACCES'); + error.code = 'EACCES'; + + this.requestGetAsyncStub = m.sinon.stub(request, 'getAsync'); + this.requestGetAsyncStub.returns(Bluebird.reject(error)); + }); + + afterEach(function() { + this.requestGetAsyncStub.restore(); + }); + + it('should resolve an empty array', function(done) { + s3Packages.getRemoteVersions(s3Packages.BUCKET_URL.PRODUCTION).then((versions) => { + m.chai.expect(versions).to.deep.equal([]); + done(); + }).catch(done); + }); + + }); + }); describe('.getLatestVersion()', function() {