mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-23 09:09:36 +02:00
[web] Make SamlLogHandler.log() calls asynchronous (#17207)
* [web] Refactor exports in ErrorController * [web] Make SamlLogHandler.log() async * [web] await for SamlLogHandler.log() in ErrorController * [web] await for SamlLogHandler.log() in SAMLMiddleware * [web] await for SamlLogHandler.log() async controllers * [web] await for SamlLogHandler.log() in SAMLManager * [web] Remove explicit wait when testing SAML logs After making the logs asynchronouse the wait is no longer needed * [web] Avoid using async with SamlLogHandler.log on callbacks * Add expressifyErrorHandler to promise-utils * Tighten assertion in SAMLMiddlewareTests Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com> * Updated SamlLogHandler.log to await for promise --------- Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com> GitOrigin-RevId: 3645923fae8096a9ba25dc9087f1a36231528569
This commit is contained in:
@@ -10,6 +10,7 @@ module.exports = {
|
||||
callbackifyAll,
|
||||
callbackifyMultiResult,
|
||||
expressify,
|
||||
expressifyErrorHandler,
|
||||
promiseMapWithLimit,
|
||||
}
|
||||
|
||||
@@ -208,6 +209,17 @@ function expressify(fn) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Transform an async function into an Error Handling Express middleware
|
||||
*
|
||||
* Any error will be passed to the error middlewares via `next()`
|
||||
*/
|
||||
function expressifyErrorHandler(fn) {
|
||||
return (err, req, res, next) => {
|
||||
fn(err, req, res, next).catch(next)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Map values in `array` with the async function `fn`
|
||||
*
|
||||
|
||||
@@ -4,6 +4,8 @@ const {
|
||||
promisifyClass,
|
||||
callbackifyMultiResult,
|
||||
callbackifyAll,
|
||||
expressify,
|
||||
expressifyErrorHandler,
|
||||
} = require('../..')
|
||||
|
||||
describe('promisifyAll', function () {
|
||||
@@ -324,3 +326,23 @@ describe('callbackifyAll', function () {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('expressify', function () {
|
||||
it('should propagate any rejection to the "next" callback', function (done) {
|
||||
const fn = () => Promise.reject(new Error('rejected'))
|
||||
expressify(fn)({}, {}, error => {
|
||||
expect(error.message).to.equal('rejected')
|
||||
done()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('expressifyErrorHandler', function () {
|
||||
it('should propagate any rejection to the "next" callback', function (done) {
|
||||
const fn = () => Promise.reject(new Error('rejected'))
|
||||
expressifyErrorHandler(fn)({}, {}, {}, error => {
|
||||
expect(error.message).to.equal('rejected')
|
||||
done()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user