/** * Bridge pour importer les modules CommonJS depuis les tests ES modules */ import { createRequire } from 'module'; import path from 'path'; import fs from 'fs'; const require = createRequire(import.meta.url); const ROOT = process.cwd(); // ✅ CHARGEMENT .ENV AUTOMATIQUE POUR LES TESTS const envPath = path.join(ROOT, '.env'); if (fs.existsSync(envPath) && !process.env._ENV_LOADED_BY_TESTS) { const lines = fs.readFileSync(envPath, 'utf8').split(/\r?\n/); for (const line of lines) { const match = line.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*)\s*$/i); if (match && !process.env[match[1]]) { process.env[match[1]] = match[2].replace(/^"|"$/g, ''); } } process.env._ENV_LOADED_BY_TESTS = 'true'; } export function requireCommonJS(modulePath) { try { const fullPath = path.join(ROOT, 'lib', `${modulePath}.js`); // Clear require cache pour tests fraîches delete require.cache[require.resolve(fullPath)]; return require(fullPath); } catch (error) { throw new Error(`Failed to require ${modulePath}: ${error.message}`); } } export function mockModule(modulePath, mockExports) { const fullPath = path.join(ROOT, 'lib', `${modulePath}.js`); require.cache[require.resolve(fullPath)] = { exports: mockExports, loaded: true }; }