From d8c4a54ff54a9ff50895474386e872c135b5d79e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 1 Jun 2025 11:21:38 +0200 Subject: [PATCH] cli: disable caching Jest module loader for node Signed-off-by: Patrik Oldsberg --- .changeset/slow-impalas-wear.md | 5 +++++ packages/cli/config/jest.js | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 .changeset/slow-impalas-wear.md diff --git a/.changeset/slow-impalas-wear.md b/.changeset/slow-impalas-wear.md new file mode 100644 index 0000000000..b5151a6ed4 --- /dev/null +++ b/.changeset/slow-impalas-wear.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Only use the caching Jest module loader for frontend packages in order to avoid breaking real ESM module imports. diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index 560c9bf708..f011d14b19 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -212,6 +212,11 @@ function getRoleConfig(role, pkgJson) { if (FRONTEND_ROLES.includes(role)) { return { testEnvironment: require.resolve('jest-environment-jsdom'), + // The caching module loader is only used to speed up frontend tests, + // as it breaks real dynamic imports of ESM modules. + runtime: envOptions.oldTests + ? undefined + : require.resolve('./jestCachingModuleLoader'), transform, }; } @@ -257,10 +262,6 @@ async function getProjectConfig(targetPath, extraConfig, extraOptions) { // A bit more opinionated testMatch: [`**/*.test.{${SRC_EXTS.join(',')}}`], - runtime: envOptions.oldTests - ? undefined - : require.resolve('./jestCachingModuleLoader'), - transformIgnorePatterns: [`/node_modules/(?:${transformIgnorePattern})/`], ...getRoleConfig(pkgJson.backstage?.role, pkgJson), };