node/test/parallel/test-promise-hook-exception...

32 lines
657 B
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const { promiseHooks } = require('v8');
const expected = [];
function testHook(name) {
const hook = promiseHooks[name];
const error = new Error(`${name} error`);
const stop = hook(common.mustCall(() => {
stop();
throw error;
}));
expected.push(error);
}
process.on('uncaughtException', common.mustCall((received) => {
assert.strictEqual(received, expected.shift());
}, 4));
testHook('onInit');
testHook('onSettled');
testHook('onBefore');
testHook('onAfter');
const stop = promiseHooks.onInit(common.mustCall(2));
Promise.resolve().then(stop);