node/test/async-hooks/test-async-exec-resource-ht...

37 lines
810 B
JavaScript

'use strict';
const common = require('../common');
const assert = require('node:assert');
const {
executionAsyncResource,
executionAsyncId,
createHook,
} = require('node:async_hooks');
const http = require('node:http');
const hooked = {};
createHook({
init(asyncId, type, triggerAsyncId, resource) {
hooked[asyncId] = resource;
},
}).enable();
const agent = new http.Agent({
maxSockets: 1,
});
const server = http.createServer((req, res) => {
res.end('ok');
});
server.listen(0, common.mustCall(() => {
assert.strictEqual(executionAsyncResource(), hooked[executionAsyncId()]);
http.get({ agent, port: server.address().port }, common.mustCall(() => {
assert.strictEqual(executionAsyncResource(), hooked[executionAsyncId()]);
server.close();
agent.destroy();
}));
}));