From dcfbbacba8c22613b956c1a3b9d958676e5d5e87 Mon Sep 17 00:00:00 2001 From: Sebastian Van Sande Date: Sat, 11 Feb 2017 20:32:16 +0100 Subject: [PATCH] path: use internal/errors.js PR-URL: https://github.com/nodejs/node/pull/11319 Ref: https://github.com/nodejs/node/issues/11273 Reviewed-By: Refael Ackermann Reviewed-By: Franziska Hinkelmann Reviewed-By: James M Snell Reviewed-By: Michael Dawson --- lib/path.js | 18 ++++++------ test/parallel/test-fs-watchfile.js | 2 +- test/parallel/test-path-parse-format.js | 38 ++++++++++--------------- test/parallel/test-path.js | 2 +- 4 files changed, 25 insertions(+), 35 deletions(-) diff --git a/lib/path.js b/lib/path.js index 2f67c8cadc8bd1..f8d0e822bf1d9b 100644 --- a/lib/path.js +++ b/lib/path.js @@ -21,11 +21,11 @@ 'use strict'; -const inspect = require('util').inspect; +const errors = require('internal/errors'); function assertPath(path) { if (typeof path !== 'string') { - throw new TypeError('Path must be a string. Received ' + inspect(path)); + throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'path', 'string'); } } @@ -816,7 +816,7 @@ const win32 = { basename: function basename(path, ext) { if (ext !== undefined && typeof ext !== 'string') - throw new TypeError('"ext" argument must be a string'); + throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'ext', 'string'); assertPath(path); var start = 0; var end = -1; @@ -959,9 +959,8 @@ const win32 = { format: function format(pathObject) { if (pathObject === null || typeof pathObject !== 'object') { - throw new TypeError( - `Parameter "pathObject" must be an object, not ${typeof pathObject}` - ); + throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'pathObject', 'Object', + typeof pathObject); } return _format('\\', pathObject); }, @@ -1372,7 +1371,7 @@ const posix = { basename: function basename(path, ext) { if (ext !== undefined && typeof ext !== 'string') - throw new TypeError('"ext" argument must be a string'); + throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'ext', 'string'); assertPath(path); var start = 0; @@ -1503,9 +1502,8 @@ const posix = { format: function format(pathObject) { if (pathObject === null || typeof pathObject !== 'object') { - throw new TypeError( - `Parameter "pathObject" must be an object, not ${typeof pathObject}` - ); + throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'pathObject', 'Object', + typeof pathObject); } return _format('/', pathObject); }, diff --git a/test/parallel/test-fs-watchfile.js b/test/parallel/test-fs-watchfile.js index fb87b1ee87a0fb..4434f3f65f2663 100644 --- a/test/parallel/test-fs-watchfile.js +++ b/test/parallel/test-fs-watchfile.js @@ -16,7 +16,7 @@ assert.throws(function() { assert.throws(function() { fs.watchFile(new Object(), common.noop); -}, /Path must be a string/); +}, common.expectsError({code: 'ERR_INVALID_ARG_TYPE', type: TypeError})); const enoentFile = path.join(common.tmpDir, 'non-existent-file'); const expectedStatObject = new fs.Stats( diff --git a/test/parallel/test-path-parse-format.js b/test/parallel/test-path-parse-format.js index d69aeac9da44a2..05335b8f308341 100644 --- a/test/parallel/test-path-parse-format.js +++ b/test/parallel/test-path-parse-format.js @@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const path = require('path'); @@ -88,29 +88,21 @@ const unixSpecialCaseFormatTests = [ [{}, ''] ]; +const expectedMessage = common.expectsError({ + code: 'ERR_INVALID_ARG_TYPE', + type: TypeError +}); + const errors = [ - {method: 'parse', input: [null], - message: /^TypeError: Path must be a string\. Received null$/}, - {method: 'parse', input: [{}], - message: /^TypeError: Path must be a string\. Received {}$/}, - {method: 'parse', input: [true], - message: /^TypeError: Path must be a string\. Received true$/}, - {method: 'parse', input: [1], - message: /^TypeError: Path must be a string\. Received 1$/}, - {method: 'parse', input: [], - message: /^TypeError: Path must be a string\. Received undefined$/}, - {method: 'format', input: [null], - message: - /^TypeError: Parameter "pathObject" must be an object, not object$/}, - {method: 'format', input: [''], - message: - /^TypeError: Parameter "pathObject" must be an object, not string$/}, - {method: 'format', input: [true], - message: - /^TypeError: Parameter "pathObject" must be an object, not boolean$/}, - {method: 'format', input: [1], - message: - /^TypeError: Parameter "pathObject" must be an object, not number$/}, + {method: 'parse', input: [null], message: expectedMessage}, + {method: 'parse', input: [{}], message: expectedMessage}, + {method: 'parse', input: [true], message: expectedMessage}, + {method: 'parse', input: [1], message: expectedMessage}, + {method: 'parse', input: [], message: expectedMessage}, + {method: 'format', input: [null], message: expectedMessage}, + {method: 'format', input: [''], message: expectedMessage}, + {method: 'format', input: [true], message: expectedMessage}, + {method: 'format', input: [1], message: expectedMessage}, ]; checkParseFormat(path.win32, winPaths); diff --git a/test/parallel/test-path.js b/test/parallel/test-path.js index cdf5c4d9f51509..c9729ae875d3e3 100644 --- a/test/parallel/test-path.js +++ b/test/parallel/test-path.js @@ -369,7 +369,7 @@ function fail(fn) { assert.throws(() => { fn.apply(null, args); - }, TypeError); + }, common.expectsError({code: 'ERR_INVALID_ARG_TYPE', type: TypeError})); } typeErrorTests.forEach((test) => {