diff --git a/test/parallel/test-process-emitwarning.js b/test/parallel/test-process-emitwarning.js index 33547377bb901b..651bdbd1abc1ed 100644 --- a/test/parallel/test-process-emitwarning.js +++ b/test/parallel/test-process-emitwarning.js @@ -10,10 +10,12 @@ process.on('warning', common.mustCall((warning) => { assert(warning); assert(/^(Warning|CustomWarning)/.test(warning.name)); assert(warning.message, 'A Warning'); -}, 3)); +}, 7)); process.emitWarning('A Warning'); process.emitWarning('A Warning', 'CustomWarning'); +process.emitWarning('A Warning', CustomWarning); +process.emitWarning('A Warning', 'CustomWarning', CustomWarning); function CustomWarning() { Error.call(this); @@ -24,6 +26,16 @@ function CustomWarning() { util.inherits(CustomWarning, Error); process.emitWarning(new CustomWarning()); +const warningNoToString = new CustomWarning(); +warningNoToString.toString = null; +process.emitWarning(warningNoToString); + +const warningThrowToString = new CustomWarning(); +warningThrowToString.toString = function() { + throw new Error('invalid toString'); +}; +process.emitWarning(warningThrowToString); + // TypeError is thrown on invalid output assert.throws(() => process.emitWarning(1), TypeError); assert.throws(() => process.emitWarning({}), TypeError);