diff --git a/lib/assert.js b/lib/assert.js index aca8313a09cbfe..00542b53fc8c87 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -242,7 +242,7 @@ function innerThrows(shouldThrow, block, expected, message) { expected, operator: 'throws', message: `Missing expected exception${details}`, - stackStartFn: innerThrows + stackStartFn: assert.throws }); } if (expected && expectedException(actual, expected) === false) { @@ -256,7 +256,7 @@ function innerThrows(shouldThrow, block, expected, message) { expected, operator: 'doesNotThrow', message: `Got unwanted exception${details}\n${actual.message}`, - stackStartFn: innerThrows + stackStartFn: assert.doesNotThrow }); } throw actual; diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index b64c777bddee9a..3078d1ce51cd07 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -476,33 +476,21 @@ common.expectsError( } ); -{ - let threw = false; - try { - assert.doesNotThrow(makeBlock(thrower, Error), 'user message'); - } catch (e) { - threw = true; - common.expectsError({ - code: 'ERR_ASSERTION', - message: /Got unwanted exception: user message\n\[object Object\]/ - })(e); +common.expectsError( + () => assert.doesNotThrow(makeBlock(thrower, Error), 'user message'), + { + code: 'ERR_ASSERTION', + message: /Got unwanted exception: user message\n\[object Object\]/ } - assert.ok(threw); -} +); -{ - let threw = false; - try { - assert.doesNotThrow(makeBlock(thrower, Error)); - } catch (e) { - threw = true; - common.expectsError({ - code: 'ERR_ASSERTION', - message: /Got unwanted exception\.\n\[object Object\]/ - })(e); +common.expectsError( + () => assert.doesNotThrow(makeBlock(thrower, Error)), + { + code: 'ERR_ASSERTION', + message: /Got unwanted exception\.\n\[object Object\]/ } - assert.ok(threw); -} +); // make sure that validating using constructor really works { @@ -634,6 +622,7 @@ testAssertionMessage({ a: NaN, b: Infinity, c: -Infinity }, } catch (e) { threw = true; assert.strictEqual(e.message, 'Missing expected exception.'); + assert.ok(!e.stack.includes('throws'), e.stack); } assert.ok(threw); } @@ -678,6 +667,7 @@ try { threw = true; assert.ok(e.message.includes(rangeError.message)); assert.ok(e instanceof assert.AssertionError); + assert.ok(!e.stack.includes('doesNotThrow'), e.stack); } assert.ok(threw); } @@ -689,21 +679,15 @@ try { } const testBlockTypeError = (method, block) => { - let threw = true; - - try { - method(block); - threw = false; - } catch (e) { - common.expectsError({ + common.expectsError( + () => method(block), + { code: 'ERR_INVALID_ARG_TYPE', type: TypeError, message: 'The "block" argument must be of type Function. Received ' + - `type ${typeName(block)}` - })(e); - } - - assert.ok(threw); + `type ${typeName(block)}` + } + ); }; testBlockTypeError(assert.throws, 'string');