diff --git a/test/README.md b/test/README.md index b79a8efb795f44..949a275792abb0 100644 --- a/test/README.md +++ b/test/README.md @@ -187,16 +187,18 @@ Platform normalizes the `dd` command Check if there is more than 1gb of total memory. -### expectsError(code[, type[, message]]) -* `code` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) - expected error must have this value for its `code` property -* `type` [<Function>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function) - expected error must be an instance of `type` -* `message` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) - or [<RegExp>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) - if a string is provided for `message`, expected error must have it for its - `message` property; if a regular expression is provided for `message`, the - regular expression must match the `message` property of the expected error +### expectsError(settings) +* `settings` [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) + with the following optional properties: + * `code` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) + expected error must have this value for its `code` property + * `type` [<Function>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function) + expected error must be an instance of `type` + * `message` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) + or [<RegExp>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) + if a string is provided for `message`, expected error must have it for its + `message` property; if a regular expression is provided for `message`, the + regular expression must match the `message` property of the expected error * return function suitable for use as a validation function passed as the second argument to `assert.throws()` diff --git a/test/common.js b/test/common.js index 270115263e6cd1..99ea679114c038 100644 --- a/test/common.js +++ b/test/common.js @@ -621,7 +621,7 @@ exports.WPT = { }; // Useful for testing expected internal/error objects -exports.expectsError = function expectsError(code, type, message) { +exports.expectsError = function expectsError({code, type, message}) { return function(error) { assert.strictEqual(error.code, code); if (type !== undefined) diff --git a/test/parallel/test-debug-agent.js b/test/parallel/test-debug-agent.js index d2f57a0bf80550..c4e8d642e4999d 100644 --- a/test/parallel/test-debug-agent.js +++ b/test/parallel/test-debug-agent.js @@ -5,9 +5,6 @@ const debug = require('_debug_agent'); assert.throws( () => { debug.start(); }, - common.expectsError( - undefined, - assert.AssertionError, - 'Debugger agent running without bindings!' - ) + common.expectsError({ type: assert.AssertionError, + message: 'Debugger agent running without bindings!' }) ); diff --git a/test/parallel/test-http-request-invalid-method-error.js b/test/parallel/test-http-request-invalid-method-error.js index 00f593fa6f9701..470f51a08fbc4e 100644 --- a/test/parallel/test-http-request-invalid-method-error.js +++ b/test/parallel/test-http-request-invalid-method-error.js @@ -5,5 +5,6 @@ const http = require('http'); assert.throws( () => { http.request({method: '\0'}); }, - common.expectsError(undefined, TypeError, 'Method must be a valid HTTP token') + common.expectsError({ type: TypeError, + message: 'Method must be a valid HTTP token' }) ); diff --git a/test/parallel/test-internal-errors.js b/test/parallel/test-internal-errors.js index 526e6befaf89e8..354209fbadaade 100644 --- a/test/parallel/test-internal-errors.js +++ b/test/parallel/test-internal-errors.js @@ -82,35 +82,39 @@ assert.throws( assert.doesNotThrow(() => { assert.throws(() => { throw new errors.TypeError('TEST_ERROR_1', 'a'); - }, common.expectsError('TEST_ERROR_1')); + }, common.expectsError({ code: 'TEST_ERROR_1' })); }); assert.doesNotThrow(() => { assert.throws(() => { throw new errors.TypeError('TEST_ERROR_1', 'a'); - }, common.expectsError('TEST_ERROR_1', TypeError, /^Error for testing/)); + }, common.expectsError({ code: 'TEST_ERROR_1', + type: TypeError, + message: /^Error for testing/ })); }); assert.doesNotThrow(() => { assert.throws(() => { throw new errors.TypeError('TEST_ERROR_1', 'a'); - }, common.expectsError('TEST_ERROR_1', TypeError)); + }, common.expectsError({ code: 'TEST_ERROR_1', type: TypeError })); }); assert.doesNotThrow(() => { assert.throws(() => { throw new errors.TypeError('TEST_ERROR_1', 'a'); - }, common.expectsError('TEST_ERROR_1', Error)); + }, common.expectsError({ code: 'TEST_ERROR_1', type: Error })); }); assert.throws(() => { assert.throws(() => { throw new errors.TypeError('TEST_ERROR_1', 'a'); - }, common.expectsError('TEST_ERROR_1', RangeError)); + }, common.expectsError({ code: 'TEST_ERROR_1', type: RangeError })); }, /^AssertionError: .+ is not the expected type \S/); assert.throws(() => { assert.throws(() => { throw new errors.TypeError('TEST_ERROR_1', 'a'); - }, common.expectsError('TEST_ERROR_1', TypeError, /^Error for testing 2/)); + }, common.expectsError({ code: 'TEST_ERROR_1', + type: TypeError, + message: /^Error for testing 2/ })); }, /AssertionError: .+ does not match \S/); diff --git a/test/parallel/test-require-invalid-package.js b/test/parallel/test-require-invalid-package.js index 54ffaabe2ec3f2..606fabd0e2f73d 100644 --- a/test/parallel/test-require-invalid-package.js +++ b/test/parallel/test-require-invalid-package.js @@ -5,5 +5,5 @@ const assert = require('assert'); // Should be an invalid package path. assert.throws(() => require('package.json'), - common.expectsError('MODULE_NOT_FOUND') + common.expectsError({ code: 'MODULE_NOT_FOUND' }) );