test: make url-util-format engine agnostic
test-util-format checks the message of an error that is generated by the JavaScript engine. Error messages that change in the underlying JavaScript engine should not be breaking changes in Node.js and therefore should not cause tests to fail. Remove the message check and replace it with a check of the type of the Error object along with the absence of a `code` property. (If a `code` property were present, it would indicate that the error was coming from Node.js rather than the JavaScript engine.) This also makes this test usable without modification in the ChakraCore fork of Node.js. PR-URL: https://github.com/nodejs/node/pull/21141 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
parent
214ff0a9d5
commit
5d32c1a8dc
@ -44,9 +44,18 @@ assert.strictEqual(util.format(symbol), 'Symbol(foo)');
|
||||
assert.strictEqual(util.format('foo', symbol), 'foo Symbol(foo)');
|
||||
assert.strictEqual(util.format('%s', symbol), 'Symbol(foo)');
|
||||
assert.strictEqual(util.format('%j', symbol), 'undefined');
|
||||
assert.throws(function() {
|
||||
util.format('%d', symbol);
|
||||
}, /^TypeError: Cannot convert a Symbol value to a number$/);
|
||||
assert.throws(
|
||||
() => { util.format('%d', symbol); },
|
||||
(e) => {
|
||||
// The error should be a TypeError.
|
||||
if (!(e instanceof TypeError))
|
||||
return false;
|
||||
|
||||
// The error should be from the JS engine and not from Node.js.
|
||||
// JS engine errors do not have the `code` property.
|
||||
return e.code === undefined;
|
||||
}
|
||||
);
|
||||
|
||||
// Number format specifier
|
||||
assert.strictEqual(util.format('%d'), '%d');
|
||||
|
Loading…
x
Reference in New Issue
Block a user