Support err as first argument for done callbacks in async tests

This commit is contained in:
Stephan Hoyer 2017-08-08 09:07:39 +02:00 committed by Pierre-Yves Gérardy
parent 9b5afff52e
commit fad8a7286b
2 changed files with 16 additions and 12 deletions

View file

@ -87,7 +87,13 @@ module.exports = new function init(name) {
var timeout = 0, delay = 200, s = new Date var timeout = 0, delay = 200, s = new Date
var isDone = false var isDone = false
function done() { function done(err) {
if (err) {
if (err.message) record(err.message, err)
else record(err)
subjects.pop()
next()
}
if (timeout !== undefined) { if (timeout !== undefined) {
timeout = clearTimeout(timeout) timeout = clearTimeout(timeout)
if (delay !== Infinity) record(null) if (delay !== Infinity) record(null)
@ -114,9 +120,7 @@ module.exports = new function init(name) {
fn(done, function(t) {delay = t}) fn(done, function(t) {delay = t})
} }
catch (e) { catch (e) {
record(e.message, e) done(e)
subjects.pop()
next()
} }
if (timeout === 0) { if (timeout === 0) {
startTimer() startTimer()
@ -126,11 +130,7 @@ module.exports = new function init(name) {
var p = fn() var p = fn()
if (p && p.then) { if (p && p.then) {
startTimer() startTimer()
p.then(done, e => { p.then(function() { done() }, done)
record(e.message, e)
subjects.pop()
next()
})
} else { } else {
nextTickish(next) nextTickish(next)
} }

View file

@ -153,10 +153,14 @@ o.spec("ospec", function() {
var a = 0, b = 0 var a = 0, b = 0
function wrapPromise(fn) { function wrapPromise(fn) {
return new Promise(resolve => { return new Promise((resolve, reject) => {
callAsync(() => { callAsync(() => {
fn() try {
resolve() fn()
resolve()
} catch(e) {
reject(e)
}
}) })
}) })
} }