From ec57a45f7a292157a64f94d7074db07fac4e6d20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nacho=20Codo=C3=B1er?= Date: Mon, 16 Feb 2026 16:02:45 +0100 Subject: [PATCH] ensure `globalImportPath` support in eager test file generation and update entry logic for client and server in rspack config --- npm-packages/meteor-rspack/lib/test.js | 25 +++++++++++--------- npm-packages/meteor-rspack/rspack.config.js | 26 ++++++++++++++++----- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/npm-packages/meteor-rspack/lib/test.js b/npm-packages/meteor-rspack/lib/test.js index 3c2644b337..e35c7e17dc 100644 --- a/npm-packages/meteor-rspack/lib/test.js +++ b/npm-packages/meteor-rspack/lib/test.js @@ -13,13 +13,14 @@ const { createIgnoreRegex, createIgnoreGlobConfig } = require("./ignore.js"); * @returns {string} The path to the generated file */ const generateEagerTestFile = ({ - isAppTest, - projectDir, - buildContext, - ignoreEntries: inIgnoreEntries = [], - prefix: inPrefix = '', - extraEntry, - }) => { + isAppTest, + projectDir, + buildContext, + ignoreEntries: inIgnoreEntries = [], + prefix: inPrefix = '', + extraEntry, + globalImportPath, +}) => { const distDir = path.resolve(projectDir, ".meteor/local/test"); if (!fs.existsSync(distDir)) { fs.mkdirSync(distDir, { recursive: true }); @@ -49,7 +50,9 @@ const generateEagerTestFile = ({ ? "/\\.app-(?:test|spec)s?\\.[^.]+$/" : "/\\.(?:test|spec)s?\\.[^.]+$/"; - const content = `{ + const content = `${ + globalImportPath ? `import '${globalImportPath}';\n\n` : '' + }{ const ctx = import.meta.webpackContext('/', { recursive: true, regExp: ${regExp}, @@ -60,14 +63,14 @@ const generateEagerTestFile = ({ ${ extraEntry ? `const extra = import.meta.webpackContext('${path.dirname( - extraEntry - )}', { + extraEntry + )}', { recursive: false, regExp: ${new RegExp(`${path.basename(extraEntry)}$`).toString()}, mode: 'eager', }); extra.keys().forEach(extra);` - : '' + : "" } }`; diff --git a/npm-packages/meteor-rspack/rspack.config.js b/npm-packages/meteor-rspack/rspack.config.js index 0e05e47f8f..f24536ef4c 100644 --- a/npm-packages/meteor-rspack/rspack.config.js +++ b/npm-packages/meteor-rspack/rspack.config.js @@ -429,7 +429,7 @@ module.exports = async function (inMeteor = {}, argv = {}) { const lazyCompilationConfig = { lazyCompilation: false }; const clientEntry = - isTest && isTestEager && isTestFullApp + isClient && isTest && isTestEager && isTestFullApp ? generateEagerTestFile({ isAppTest: true, projectDir, @@ -437,8 +437,9 @@ module.exports = async function (inMeteor = {}, argv = {}) { ignoreEntries: [...meteorIgnoreEntries, "**/server/**"], prefix: "client", extraEntry: path.resolve(process.cwd(), Meteor.mainClientEntry), + globalImportPath: path.resolve(projectDir, buildContext, entryPath), }) - : isTest && isTestEager + : isClient && isTest && isTestEager ? generateEagerTestFile({ isAppTest: false, isClient: true, @@ -446,10 +447,16 @@ module.exports = async function (inMeteor = {}, argv = {}) { buildContext, ignoreEntries: [...meteorIgnoreEntries, "**/server/**"], prefix: "client", + globalImportPath: path.resolve(projectDir, buildContext, entryPath), }) - : isTest && testEntry + : isClient && isTest && testEntry ? path.resolve(process.cwd(), testEntry) : path.resolve(process.cwd(), buildContext, entryPath); + console.log( + "--> (rspack.config.js-Line: 431)\n clientEntry: ", + clientEntry, + entryPath + ); const clientNameConfig = `[${(isTest && 'test-') || ''}client-rspack]`; // Base client config let clientConfig = { @@ -548,26 +555,33 @@ module.exports = async function (inMeteor = {}, argv = {}) { }; const serverEntry = - isTest && isTestEager && isTestFullApp + isServer && isTest && isTestEager && isTestFullApp ? generateEagerTestFile({ isAppTest: true, projectDir, buildContext, ignoreEntries: [...meteorIgnoreEntries, "**/client/**"], prefix: "server", + globalImportPath: path.resolve(projectDir, buildContext, entryPath), }) - : isTest && isTestEager + : isServer && isTest && isTestEager ? generateEagerTestFile({ isAppTest: false, projectDir, buildContext, ignoreEntries: [...meteorIgnoreEntries, "**/client/**"], prefix: "server", + globalImportPath: path.resolve(projectDir, buildContext, entryPath), }) - : isTest && testEntry + : isServer && isTest && testEntry ? path.resolve(process.cwd(), testEntry) : path.resolve(projectDir, buildContext, entryPath); const serverNameConfig = `[${(isTest && 'test-') || ''}server-rspack]`; + console.log( + "--> (rspack.config.js-Line: 576)\n serverEntry: ", + serverEntry, + entryPath + ); // Base server config let serverConfig = { name: serverNameConfig,