seo-generator-server/tests/_helpers/env.js

31 lines
955 B
JavaScript

import assert from 'node:assert';
import fs from 'fs';
import path from 'path';
// ✅ CHARGEMENT .ENV SI PAS DÉJÀ FAIT
const envPath = path.join(process.cwd(), '.env');
if (fs.existsSync(envPath) && !process.env._ENV_LOADED_BY_ENV_HELPER) {
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_ENV_HELPER = 'true';
}
export function requireEnv(keys) {
const missing = [];
for (const k of keys) {
if (!process.env[k] || String(process.env[k]).trim() === '') missing.push(k);
}
return { ok: missing.length === 0, missing };
}
export const DEFAULT_REQUIRED = [
// adapte à ton projet
'OPENAI_API_KEY', 'ANTHROPIC_API_KEY', 'GOOGLE_API_KEY',
'MAX_COST_PER_ARTICLE', 'TRACE_PATH'
];