mirror of
https://github.com/oven-sh/bun
synced 2026-02-19 07:12:24 +00:00
Co-authored-by: Kai Tamkun <kai@tamkun.io> Co-authored-by: Jarred Sumner <jarred@jarredsumner.com> Co-authored-by: Ashcon Partovi <ashcon@partovi.net> Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com> Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Co-authored-by: 190n <190n@users.noreply.github.com>
61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
'use strict';
|
|
const common = require('../../common');
|
|
const assert = require('assert');
|
|
const async_hooks = require('async_hooks');
|
|
const test_async = require(`./build/${common.buildType}/test_async`);
|
|
|
|
const events = [];
|
|
let testId;
|
|
const initAsyncId = async_hooks.executionAsyncId();
|
|
|
|
async_hooks.createHook({
|
|
init(id, provider, triggerAsyncId, resource) {
|
|
if (provider === 'TestResource') {
|
|
testId = id;
|
|
events.push({ type: 'init', id, provider, triggerAsyncId, resource });
|
|
}
|
|
},
|
|
before(id) {
|
|
if (testId === id) {
|
|
events.push({ type: 'before', id });
|
|
}
|
|
},
|
|
after(id) {
|
|
if (testId === id) {
|
|
events.push({ type: 'after', id });
|
|
}
|
|
},
|
|
destroy(id) {
|
|
if (testId === id) {
|
|
events.push({ type: 'destroy', id });
|
|
}
|
|
},
|
|
}).enable();
|
|
|
|
const resource = { foo: 'foo' };
|
|
|
|
events.push({ type: 'start' });
|
|
test_async.Test(5, resource, common.mustCall(function(err, val) {
|
|
assert.strictEqual(err, null);
|
|
assert.strictEqual(val, 10);
|
|
events.push({ type: 'complete' });
|
|
process.nextTick(common.mustCall());
|
|
}));
|
|
events.push({ type: 'scheduled' });
|
|
|
|
process.on('exit', () => {
|
|
assert.deepStrictEqual(events, [
|
|
{ type: 'start' },
|
|
{ type: 'init',
|
|
id: testId,
|
|
provider: 'TestResource',
|
|
triggerAsyncId: initAsyncId,
|
|
resource },
|
|
{ type: 'scheduled' },
|
|
{ type: 'before', id: testId },
|
|
{ type: 'complete' },
|
|
{ type: 'after', id: testId },
|
|
{ type: 'destroy', id: testId },
|
|
]);
|
|
});
|