0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-24 20:29:23 +01:00
nodejs/test/async-hooks/test-immediate.js
Ruben Bridgewater b08a867d60
benchmark,doc,lib: capitalize more comments
PR-URL: https://github.com/nodejs/node/pull/26849
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
2019-03-27 17:20:06 +01:00

64 lines
2.1 KiB
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const tick = require('../common/tick');
const initHooks = require('./init-hooks');
const { checkInvocations } = require('./hook-checks');
const hooks = initHooks();
hooks.enable();
// Install first immediate
setImmediate(common.mustCall(onimmediate));
const as = hooks.activitiesOfTypes('Immediate');
assert.strictEqual(as.length, 1);
const imd1 = as[0];
assert.strictEqual(imd1.type, 'Immediate');
assert.strictEqual(typeof imd1.uid, 'number');
assert.strictEqual(typeof imd1.triggerAsyncId, 'number');
checkInvocations(imd1, { init: 1 },
'imd1: when first set immediate installed');
let imd2;
function onimmediate() {
let as = hooks.activitiesOfTypes('Immediate');
assert.strictEqual(as.length, 1);
checkInvocations(imd1, { init: 1, before: 1 },
'imd1: when first set immediate triggered');
// Install second immediate
setImmediate(common.mustCall(onimmediateTwo));
as = hooks.activitiesOfTypes('Immediate');
assert.strictEqual(as.length, 2);
imd2 = as[1];
assert.strictEqual(imd2.type, 'Immediate');
assert.strictEqual(typeof imd2.uid, 'number');
assert.strictEqual(typeof imd2.triggerAsyncId, 'number');
checkInvocations(imd1, { init: 1, before: 1 },
'imd1: when second set immediate installed');
checkInvocations(imd2, { init: 1 },
'imd2: when second set immediate installed');
}
function onimmediateTwo() {
checkInvocations(imd1, { init: 1, before: 1, after: 1, destroy: 1 },
'imd1: when second set immediate triggered');
checkInvocations(imd2, { init: 1, before: 1 },
'imd2: when second set immediate triggered');
tick(1);
}
process.on('exit', onexit);
function onexit() {
hooks.disable();
hooks.sanityCheck('Immediate');
checkInvocations(imd1, { init: 1, before: 1, after: 1, destroy: 1 },
'imd1: when process exits');
checkInvocations(imd2, { init: 1, before: 1, after: 1, destroy: 1 },
'imd2: when process exits');
}