Outlook_Addin_LLM/node_modules/async-hook-jl/test/test-parent.js

59 lines
1.1 KiB
JavaScript
Raw Normal View History

'use strict';
const asyncHook = require('../');
const assert = require('assert');
const net = require('net');
let called = false;
let firstHook = true;
let initCalls = 0;
let serverHandle = {};
let serverUid = NaN;
let clientParentHandle = {};
let clientParentUid = NaN;
asyncHook.addHooks({
init: function (uid, handle, provider, parentUid, parentHandle) {
if (provider != asyncHook.providers.TCPWRAP) return;
if (firstHook) {
firstHook = false;
serverUid = uid;
serverHandle = handle;
assert.equal(parentUid, null);
assert.equal(parentHandle, null);
} else {
clientParentHandle = parentHandle;
clientParentUid = parentUid;
}
initCalls += 1;
}
});
asyncHook.enable();
const server = net.createServer(function (socket) {
socket.end();
server.close();
called = true;
}).listen(function () {
net.connect(this.address());
});
asyncHook.disable();
process.once('exit', function () {
assert.equal(serverHandle, clientParentHandle);
assert.equal(serverUid, clientParentUid);
assert.equal(called, true);
assert.equal(initCalls, 2);
});