From cbf08c599b041396a9d75307a1abecc83c6d536a Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 7 Nov 2019 10:28:27 +0000 Subject: [PATCH] Merge pull request #2333 from overleaf/em-unhandled-rejections Fail tests on unhandled promise rejection GitOrigin-RevId: 3cc53ce5b46c63c62374eb83f9442b8d6979272e --- services/web/test/acceptance/bootstrap.js | 6 ++++++ services/web/test/unit/bootstrap.js | 6 ++++++ services/web/test/unit/src/Email/EmailSenderTests.js | 4 ++-- .../web/test/unit/src/User/SAMLIdentityManagerTests.js | 9 ++++++++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/services/web/test/acceptance/bootstrap.js b/services/web/test/acceptance/bootstrap.js index 1d2042b924..96d08c50bd 100644 --- a/services/web/test/acceptance/bootstrap.js +++ b/services/web/test/acceptance/bootstrap.js @@ -1,3 +1,9 @@ const chai = require('chai') chai.use(require('chai-as-promised')) chai.use(require('chaid')) + +// Crash the process on an unhandled promise rejection +process.on('unhandledRejection', err => { + console.error('Unhandled promise rejection:', err) + process.exit(1) +}) diff --git a/services/web/test/unit/bootstrap.js b/services/web/test/unit/bootstrap.js index ef5fb6f278..fe74448595 100644 --- a/services/web/test/unit/bootstrap.js +++ b/services/web/test/unit/bootstrap.js @@ -15,3 +15,9 @@ chai.config.truncateThreshold = 0 require('sinon-as-promised') // add support for mongoose in sinon require('sinon-mongoose') + +// Crash the process on an unhandled promise rejection +process.on('unhandledRejection', err => { + console.error('Unhandled promise rejection:', err) + process.exit(1) +}) diff --git a/services/web/test/unit/src/Email/EmailSenderTests.js b/services/web/test/unit/src/Email/EmailSenderTests.js index 2fab6dda23..c6f2499cc9 100644 --- a/services/web/test/unit/src/Email/EmailSenderTests.js +++ b/services/web/test/unit/src/Email/EmailSenderTests.js @@ -72,8 +72,8 @@ describe('EmailSender', function() { it('should return a non-specific error', async function() { this.sesClient.sendMail.rejects(new Error('boom')) - expect(this.EmailSender.promises.sendEmail({})).to.be.rejectedWith( - 'Error: Cannot send email' + await expect(this.EmailSender.promises.sendEmail({})).to.be.rejectedWith( + 'error sending message' ) }) diff --git a/services/web/test/unit/src/User/SAMLIdentityManagerTests.js b/services/web/test/unit/src/User/SAMLIdentityManagerTests.js index d3337bdaf9..002dd1eb1f 100644 --- a/services/web/test/unit/src/User/SAMLIdentityManagerTests.js +++ b/services/web/test/unit/src/User/SAMLIdentityManagerTests.js @@ -33,6 +33,12 @@ describe('SAMLIdentityManager', function() { this.institution = { name: 'Overleaf University' } + this.InstitutionsAPI = { + promises: { + addEntitlement: sinon.stub().resolves(), + removeEntitlement: sinon.stub().resolves() + } + } this.SAMLIdentityManager = SandboxedModule.require(modulePath, { requires: { '../Email/EmailHandler': (this.EmailHandler = { @@ -59,7 +65,8 @@ describe('SAMLIdentityManager', function() { }), '../User/UserUpdater': (this.UserUpdater = { addEmailAddress: sinon.stub() - }) + }), + '../Institutions/InstitutionsAPI': this.InstitutionsAPI } }) })