From 9c3a7bf076a23b6bc54e36d85f27df860aacd44d Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 4 Jun 2018 14:07:52 -0700 Subject: [PATCH] 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 Reviewed-By: Colin Ihrig --- test/parallel/test-util-format.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-util-format.js b/test/parallel/test-util-format.js index f99f85b78c853b..a8adf936719932 100644 --- a/test/parallel/test-util-format.js +++ b/test/parallel/test-util-format.js @@ -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');