73 lines
1.4 KiB
JavaScript
73 lines
1.4 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
const asyncHook = require('../');
|
||
|
const assert = require('assert');
|
||
|
|
||
|
const thenHandlersCalledA = [false, false];
|
||
|
const thenHandlersCalledB = [false, false];
|
||
|
let catchHandlerCalledC = false;
|
||
|
let catchHandlerCalledD = false;
|
||
|
|
||
|
let fulfilledArgA = null;
|
||
|
let rejectedArgB = null;
|
||
|
let rejectedArgC = null;
|
||
|
|
||
|
asyncHook.addHooks({
|
||
|
init: function () {
|
||
|
assert(false);
|
||
|
},
|
||
|
pre: function () {
|
||
|
assert(false);
|
||
|
},
|
||
|
post: function () {
|
||
|
assert(false);
|
||
|
},
|
||
|
destroy: function () {
|
||
|
assert(false);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
asyncHook.enable();
|
||
|
asyncHook.disable();
|
||
|
|
||
|
Promise
|
||
|
.resolve('a')
|
||
|
.then(arg => {
|
||
|
fulfilledArgA = arg;
|
||
|
thenHandlersCalledA[0] = true;
|
||
|
}, () => {
|
||
|
thenHandlersCalledA[1] = true;
|
||
|
});
|
||
|
|
||
|
Promise
|
||
|
.reject('b')
|
||
|
.then(() => {
|
||
|
thenHandlersCalledB[0] = true;
|
||
|
}, arg => {
|
||
|
rejectedArgB = arg;
|
||
|
thenHandlersCalledB[1] = true;
|
||
|
});
|
||
|
|
||
|
Promise
|
||
|
.reject('c')
|
||
|
.catch(arg => {
|
||
|
rejectedArgC = arg;
|
||
|
catchHandlerCalledC = true;
|
||
|
});
|
||
|
|
||
|
Promise
|
||
|
.resolve('d')
|
||
|
.catch(() => {
|
||
|
catchHandlerCalledD = true;
|
||
|
});
|
||
|
|
||
|
process.once('exit', function () {
|
||
|
assert.deepStrictEqual(thenHandlersCalledA, [true, false]);
|
||
|
assert.equal(fulfilledArgA, 'a');
|
||
|
assert.deepStrictEqual(thenHandlersCalledB, [false, true]);
|
||
|
assert.equal(rejectedArgB, 'b');
|
||
|
assert.equal(catchHandlerCalledC, true);
|
||
|
assert.equal(rejectedArgC, 'c');
|
||
|
assert.equal(catchHandlerCalledD, false);
|
||
|
});
|