Browse Source

test: improve checks in test-path-parse-format

- validate full error messages
- use assert.throws() instead of try...catch

PR-URL: https://github.com/nodejs/node/pull/11223
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
v6.x
cjihrig 8 years ago
committed by Myles Borins
parent
commit
7aebc6907c
No known key found for this signature in database GPG Key ID: 933B01F40B5CA946
  1. 37
      test/parallel/test-path-parse-format.js

37
test/parallel/test-path-parse-format.js

@ -1,5 +1,5 @@
'use strict'; 'use strict';
const common = require('../common'); require('../common');
const assert = require('assert'); const assert = require('assert');
const path = require('path'); const path = require('path');
@ -69,23 +69,27 @@ const unixSpecialCaseFormatTests = [
const errors = [ const errors = [
{method: 'parse', input: [null], {method: 'parse', input: [null],
message: /Path must be a string. Received null/}, message: /^TypeError: Path must be a string. Received null$/},
{method: 'parse', input: [{}], {method: 'parse', input: [{}],
message: /Path must be a string. Received {}/}, message: /^TypeError: Path must be a string. Received {}$/},
{method: 'parse', input: [true], {method: 'parse', input: [true],
message: /Path must be a string. Received true/}, message: /^TypeError: Path must be a string. Received true$/},
{method: 'parse', input: [1], {method: 'parse', input: [1],
message: /Path must be a string. Received 1/}, message: /^TypeError: Path must be a string. Received 1$/},
{method: 'parse', input: [], {method: 'parse', input: [],
message: /Path must be a string. Received undefined/}, message: /^TypeError: Path must be a string. Received undefined$/},
{method: 'format', input: [null], {method: 'format', input: [null],
message: /Parameter "pathObject" must be an object, not/}, message:
/^TypeError: Parameter "pathObject" must be an object, not object$/},
{method: 'format', input: [''], {method: 'format', input: [''],
message: /Parameter "pathObject" must be an object, not string/}, message:
/^TypeError: Parameter "pathObject" must be an object, not string$/},
{method: 'format', input: [true], {method: 'format', input: [true],
message: /Parameter "pathObject" must be an object, not boolean/}, message:
/^TypeError: Parameter "pathObject" must be an object, not boolean$/},
{method: 'format', input: [1], {method: 'format', input: [1],
message: /Parameter "pathObject" must be an object, not number/}, message:
/^TypeError: Parameter "pathObject" must be an object, not number$/},
]; ];
checkParseFormat(path.win32, winPaths); checkParseFormat(path.win32, winPaths);
@ -158,18 +162,9 @@ assert.equal(failures.length, 0, failures.join(''));
function checkErrors(path) { function checkErrors(path) {
errors.forEach(function(errorCase) { errors.forEach(function(errorCase) {
try { assert.throws(() => {
path[errorCase.method].apply(path, errorCase.input); path[errorCase.method].apply(path, errorCase.input);
} catch (err) { }, errorCase.message);
assert.ok(err instanceof TypeError);
assert.ok(
errorCase.message.test(err.message),
'expected ' + errorCase.message + ' to match ' + err.message
);
return;
}
common.fail('should have thrown');
}); });
} }

Loading…
Cancel
Save