diff options
author | James M Snell <jasnell@gmail.com> | 2017-04-25 13:18:25 -0700 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2017-05-04 07:18:17 -0700 |
commit | e48d58b8b26bd6f1a59cfb57307906b9b0350272 (patch) | |
tree | 20f52e83c2b12abf6f40b7b9b988a039fce467c8 /test/parallel/test-assert-deep.js | |
parent | c1b3b95939884b20a6312822091b9fec2ef9f31f (diff) | |
download | android-node-v8-e48d58b8b26bd6f1a59cfb57307906b9b0350272.tar.gz android-node-v8-e48d58b8b26bd6f1a59cfb57307906b9b0350272.tar.bz2 android-node-v8-e48d58b8b26bd6f1a59cfb57307906b9b0350272.zip |
assert: fix AssertionError, assign error code
Using `assert.AssertionError()` without the `new` keyword results
in a non-intuitive error:
```js
> assert.AssertionError({})
TypeError: Cannot assign to read only property 'name' of function 'function ok(value, message) {
if (!value) fail(value, true, message, '==', assert.ok);
}'
at Function.AssertionError (assert.js:45:13)
at repl:1:8
at realRunInThisContextScript (vm.js:22:35)
at sigintHandlersWrap (vm.js:98:12)
at ContextifyScript.Script.runInThisContext (vm.js:24:12)
at REPLServer.defaultEval (repl.js:346:29)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.onLine (repl.js:545:10)
at emitOne (events.js:101:20)
>
```
The `assert.AssertionError()` can only be used correctly with `new`,
so this converts it into a proper ES6 class that will give an
appropriate error message.
This also associates the appropriate internal/errors code with all
`assert.AssertionError` instances and updates the appropriate test
cases.
PR-URL: https://github.com/nodejs/node/pull/12651
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Diffstat (limited to 'test/parallel/test-assert-deep.js')
-rw-r--r-- | test/parallel/test-assert-deep.js | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/test/parallel/test-assert-deep.js b/test/parallel/test-assert-deep.js index 70f538d919..e54377bdbb 100644 --- a/test/parallel/test-assert-deep.js +++ b/test/parallel/test-assert-deep.js @@ -1,5 +1,5 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const util = require('util'); @@ -13,7 +13,10 @@ function re(literals, ...values) { result += str.replace(/[\\^$.*+?()[\]{}|=!<>:-]/g, '\\$&'); result += literals[i + 1]; } - return new RegExp(`^AssertionError: ${result}$`); + return common.expectsError({ + code: 'ERR_ASSERTION', + message: new RegExp(`^${result}$`) + }); } // The following deepEqual tests might seem very weird. @@ -112,8 +115,10 @@ for (const a of similar) { assert.throws( () => { assert.deepEqual(new Set([{a: 0}]), new Set([{a: 1}])); }, - /^AssertionError: Set { { a: 0 } } deepEqual Set { { a: 1 } }$/ -); + common.expectsError({ + code: 'ERR_ASSERTION', + message: /^Set { { a: 0 } } deepEqual Set { { a: 1 } }$/ + })); function assertDeepAndStrictEqual(a, b) { assert.deepEqual(a, b); |