add file extension module rules assertions

This commit is contained in:
Nacho Codoñer
2025-08-14 17:15:19 +02:00
parent 0ae2a8d7af
commit 4e6db59f62
4 changed files with 22 additions and 4 deletions

View File

@@ -19,23 +19,41 @@ describe('Babel App Bundling /', () => {
},
customAssertions: {
afterRun: async ({ result }) => {
await assertFileExtensionModuleRules(result.outputLines);
},
afterRunRebuildClient: async ({ allConsoleLogs }) => {
// Check for HMR output as enabled by default
await waitForMeteorOutput(allConsoleLogs, /.*HMR.*Updated modules:*/);
await waitForMeteorOutput(allConsoleLogs, /.*HMR.*Updated modules:.*/);
},
afterRunProduction: async ({ result }) => {
await assertFileExtensionModuleRules(result.outputLines);
},
afterRunProductionRebuildClient: async ({ allConsoleLogs }) => {
// Check for HMR to not be enabled in production-like mode
await waitForMeteorOutput(allConsoleLogs, /.*HMR.*Updated modules:*/, { negate: true });
},
afterTest: async ({ result }) => {
await assertFileExtensionModuleRules(result.outputLines);
},
afterTestOnce: async ({ result }) => {
await assertFileExtensionModuleRules(result.outputLines);
},
afterBuild: async ({ result }) => {
await assertFileExtensionModuleRules(result.outputLines);
},
}
}));
});
/**
* Helper function to assert that output contains expected file extension moduel rules
* @param {string[]} outputLines - Array of output lines to check
* @returns {Promise<void>}
*/
export async function assertFileExtensionModuleRules(outputLines) {
// Check for custom and residual rules
await waitForMeteorOutput(outputLines, '/\\.(js|jsx)$/');
await waitForMeteorOutput(outputLines, '/\\.(tsx|ts|mts|cts|mjs|cjs)$/');
await waitForMeteorOutput(outputLines, '/\\.(graphql|gql)$/');
await waitForMeteorOutput(outputLines, '/\\.(?:[mc]?js|jsx|[mc]?ts|tsx)$/i', { negate: true });
}

View File

@@ -25,7 +25,7 @@ describe('CoffeeScript App Bundling /', () => {
},
afterRunRebuildClient: async ({ allConsoleLogs }) => {
// Check for HMR output as enabled by default
await waitForMeteorOutput(allConsoleLogs, /.*HMR.*Updated modules:*/);
await waitForMeteorOutput(allConsoleLogs, /.*HMR.*Updated modules:.*/);
},
afterRunProduction: async ({ result }) => {
await waitForCoffeescriptEnvs(result.outputLines);

View File

@@ -83,7 +83,7 @@ describe('React App Bundling /', () => {
},
afterRunRebuildClient: async ({ allConsoleLogs }) => {
// Check for HMR output as enabled by default
await waitForMeteorOutput(allConsoleLogs, /.*HMR.*Updated modules:*/);
await waitForMeteorOutput(allConsoleLogs, /.*HMR.*Updated modules:.*/);
},
afterRunProduction: async ({ result }) => {
await waitForReactEnvs(result.outputLines, { isJsxEnabled: true });

View File

@@ -24,7 +24,7 @@ describe('TypeScript App Bundling /', () => {
},
afterRunRebuildClient: async ({ allConsoleLogs }) => {
// Check for HMR output as enabled by default
await waitForMeteorOutput(allConsoleLogs, /.*HMR.*Updated modules:*/);
await waitForMeteorOutput(allConsoleLogs, /.*HMR.*Updated modules:.*/);
},
afterRunProduction: async ({ result }) => {
await waitForTypeScriptEnvs(result.outputLines, { isTsxEnabled: true });