From 651e21b5b588ffa20ce074f79ca58c5f08306b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Wed, 24 Aug 2022 22:12:36 +0200 Subject: [PATCH] Fix Node.js 10 tests --- packages/babel-core/test/errors-stacks.js | 93 ++++++++++++++--------- 1 file changed, 55 insertions(+), 38 deletions(-) diff --git a/packages/babel-core/test/errors-stacks.js b/packages/babel-core/test/errors-stacks.js index 24623af206e1..297f75b18cbb 100644 --- a/packages/babel-core/test/errors-stacks.js +++ b/packages/babel-core/test/errors-stacks.js @@ -26,8 +26,25 @@ function expectError(run) { "\n at $1 (... internal node frames ...)", ); // Replace line/column numbers, since they are affected by how - // the code is compiled. - stack = stack.replace(/\d*:\d+:\d+(\)?)$/gm, ":_:_$1"); + // the code is compiled. The first optional ?\d+ is added by Jest. + stack = stack.replace(/(?:\?\d+)?:\d+:\d+(\)?)$/gm, ":_:_$1"); + + // This is only needed because Node.js < 16 (and old Jest) stack traces + // are quite different from newer stack traces. + // TODO(Babel 8): Delete this code + { + stack = replaceAll(stack, "Object.parseSync", "Module.parseSync"); + stack = stack.replace( + /(?:run|Object\.) \(([^)]+)\)/g, + "$1", + ); + stack = replaceAll( + stack, + "\n at ... internal jest frames ... \n at new Promise ()", + "", + ); + } + return expect(stack); } throw new Error("It should have thrown an error."); @@ -53,9 +70,9 @@ describe("@babel/core errors", function () { "Error: Error inside config! at myConfig (/packages/babel-core/test/fixtures/errors/error-config-function/babel.config.js:_:_) at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -71,9 +88,9 @@ describe("@babel/core errors", function () { at g (/packages/babel-core/test/fixtures/errors/error-config-function-more-frames/babel.config.js:_:_) at myConfig (/packages/babel-core/test/fixtures/errors/error-config-function-more-frames/babel.config.js:_:_) at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -85,12 +102,12 @@ describe("@babel/core errors", function () { }); }).toMatchInlineSnapshot(` "Error: Error inside config! - at Object. (/packages/babel-core/test/fixtures/errors/error-config-file/babel.config.js:_:_) + at /packages/babel-core/test/fixtures/errors/error-config-file/babel.config.js:_:_ at require (... internal node frames ...) at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -104,12 +121,12 @@ describe("@babel/core errors", function () { "Error: Error inside config! at f (/packages/babel-core/test/fixtures/errors/error-config-file-more-frames/babel.config.js:_:_) at g (/packages/babel-core/test/fixtures/errors/error-config-file-more-frames/babel.config.js:_:_) - at Object. (/packages/babel-core/test/fixtures/errors/error-config-file-more-frames/babel.config.js:_:_) + at /packages/babel-core/test/fixtures/errors/error-config-file-more-frames/babel.config.js:_:_ at require (... internal node frames ...) at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -123,9 +140,9 @@ describe("@babel/core errors", function () { "Error: Error while parsing config - JSON5: invalid character '}' at 3:1 at /packages/babel-core/test/fixtures/errors/invalid-json/babel.config.json at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -139,9 +156,9 @@ describe("@babel/core errors", function () { "Error: Configuration contains string/RegExp pattern, but no filename was passed to Babel at /packages/babel-core/test/fixtures/errors/use-exclude/babel.config.js at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -155,9 +172,9 @@ describe("@babel/core errors", function () { }).toMatchInlineSnapshot(` "Error: Configuration contains string/RegExp pattern, but no filename was passed to Babel at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -174,9 +191,9 @@ describe("@babel/core errors", function () { \`\`\` See https://babeljs.io/docs/en/options#filename for more information. at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -190,9 +207,9 @@ describe("@babel/core errors", function () { "Error: .sourceType must be \\"module\\", \\"script\\", \\"unambiguous\\", or undefined at /packages/babel-core/test/fixtures/errors/invalid-option/babel.config.json at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -206,9 +223,9 @@ describe("@babel/core errors", function () { ).toMatchInlineSnapshot(` "Error: .sourceType must be \\"module\\", \\"script\\", \\"unambiguous\\", or undefined at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); }); @@ -228,7 +245,7 @@ describe("@babel/core errors", function () { } }).toMatchInlineSnapshot(` "Error: Internal error! This is a fake bug :) - at Array.map (/packages/babel-core/test/errors-stacks.js?:_:_) + at Array.map (/packages/babel-core/test/errors-stacks.js:_:_) at loadOneConfig (/packages/babel-core/lib/config/files/configuration.js:_:_) at loadOneConfig.next () at buildRootChain (/packages/babel-core/lib/config/config-chain.js:_:_) @@ -243,9 +260,9 @@ describe("@babel/core errors", function () { at sync (/node_modules/gensync/index.js:_:_) at stopHiding - secret - don't use this - v1 (/packages/babel-core/lib/errors/rewrite-stack-trace.js:_:_) at Module.parseSync (/packages/babel-core/lib/parse.js:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ - at expectError (/packages/babel-core/test/errors-stacks.js?:_:_) - at /packages/babel-core/test/errors-stacks.js?:_:_ + at /packages/babel-core/test/errors-stacks.js:_:_ + at expectError (/packages/babel-core/test/errors-stacks.js:_:_) + at /packages/babel-core/test/errors-stacks.js:_:_ at ... internal jest frames ..." `); });