async-hook-jl
Version:
Inspect the life of handle objects in node
76 lines (59 loc) • 1.43 kB
JavaScript
const asyncHook = require('../');
const assert = require('assert');
let rejctedCalled = false;
let rejectedArg = null;
let initCalls = 0;
let destroyCalls = 0;
let initUid = NaN;
let initHandle = {};
let initParent = {};
let initProvider = NaN;
let preHandle = {};
let preUid = NaN;
let postHandle = {};
let postUid = NaN;
let destroyUid = NaN;
asyncHook.addHooks({
init: function (uid, handle, provider, parent) {
initUid = uid;
initHandle = handle;
initParent = parent;
initProvider = provider;
initCalls += 1;
},
pre: function (uid, handle) {
preUid = uid;
preHandle = handle;
},
post: function (uid, handle) {
postUid = uid;
postHandle = handle;
},
destroy: function (uid) {
destroyUid = uid;
destroyCalls += 1;
}
});
asyncHook.enable();
Promise
.reject('a')
.catch(arg => {
rejctedCalled = true;
rejectedArg = arg;
});
asyncHook.disable();
process.once('exit', function () {
assert.equal(initUid, preUid);
assert.equal(initUid, postUid);
assert.equal(initUid, destroyUid);
assert.equal(initHandle, preHandle);
assert.equal(initHandle, postHandle);
assert.equal(initHandle.constructor.name, 'PromiseWrap');
assert.equal(initParent, null);
assert.equal(initProvider, 0);
assert.equal(rejctedCalled, true);
assert.equal(rejectedArg, 'a');
assert.equal(initCalls, 1);
assert.equal(destroyCalls, 1);
});
;