mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
ensure globalImportPath support in eager test file generation and update entry logic for client and server in rspack config
This commit is contained in:
@@ -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);`
|
||||
: ''
|
||||
: ""
|
||||
}
|
||||
}`;
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user