seo-generator-server/tests/pipeline-4-phases-force-report.test.js
StillHammer 4f60de68d6 Fix BatchProcessor initialization and add comprehensive test suite
- Fix BatchProcessor constructor to avoid server blocking during startup
- Add comprehensive integration tests for all modular combinations
- Enhance CLAUDE.md documentation with new test commands
- Update SelectiveLayers configuration for better LLM allocation
- Add AutoReporter system for test automation
- Include production workflow validation tests

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 14:17:49 +08:00

171 lines
6.9 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import test from 'node:test';
import assert from 'node:assert';
import { requireCommonJS } from './_helpers/commonjs-bridge.js';
import { AutoReporter } from './reporters/AutoReporter.js';
/**
* TEST PIPELINE 4 PHASES AVEC FORCE RAPPORT
* Workflow: Generation initial => adversarial => Heavy enhancement => human touch
*/
// Auto-Reporter Configuration - OBLIGATOIRE
const autoReporter = new AutoReporter();
// Configuration pipeline
const mockCsvData = {
mc0: 'solution digitale enterprise pipeline 4 phases',
t0: 'Pipeline complet 4 phases avec rapport forcé',
personality: {
nom: 'Sophie',
style: 'créatif-technique',
description: 'Experte en content strategy et pipeline complet'
}
};
console.log('🚀 PIPELINE 4 PHASES - GENERATION RAPPORT FORCÉE');
console.log('📋 Workflow: Generation initial => adversarial => Heavy enhancement => human touch');
test('Pipeline 4 Phases Complet - Rapport AutoReporter', { timeout: 180000 }, async () => {
console.log('\n🔄 === DÉMARRAGE PIPELINE 4 PHASES ===');
// =========================================
// PHASE 1: GÉNÉRATION INITIALE
// =========================================
console.log('\n📝 PHASE 1/4: Génération Initiale (Content de base)');
let result = {
content: {
'Titre_H1': 'Solutions digitales enterprise pour transformation métier avec architecture moderne et pipeline 4 phases',
'Introduction': 'Les solutions digitales enterprise révolutionnent la gestion des processus métier grâce à leur architecture modulaire, leurs capacités d\'intégration avancées et leurs outils analytics prédictive dans un pipeline complet.',
'Avantages_Techniques': 'Architecture cloud-native avec APIs REST sécurisées, scalabilité automatique, monitoring en temps réel des performances système, bases de données distribuées et intelligence artificielle intégrée pour pipeline optimisé.',
'Conclusion': 'Investissement stratégique permettant digitalisation complète avec pipeline 4 phases, amélioration significative de la productivité organisationnelle et avantage concurrentiel durable.'
}
};
assert.ok(result.content, 'Content initial préparé');
console.log('✅ Phase 1: Content initial préparé');
console.log(`📊 Content initial: ${Object.keys(result.content).length} éléments`);
// =========================================
// PHASE 2: ADVERSARIAL DEFENSE
// =========================================
console.log('\n🛡 PHASE 2/4: Adversarial Defense (Anti-détection)');
const AdversarialLayers = requireCommonJS('adversarial-generation/AdversarialLayers');
result = await AdversarialLayers.applyPredefinedStack(
result.content,
'lightDefense', // Stack léger pour performance
{
...mockCsvData,
preferredProvider: 'claude',
intensity: 0.8
},
{ source: 'pipeline_4_phases_adversarial_report' }
);
assert.ok(result.content, 'Adversarial defense appliqué');
console.log('✅ Phase 2: Adversarial defense terminé');
console.log(`📊 Anti-détection: ${result.stats?.layersApplied || 'light'} couches appliquées`);
// =========================================
// PHASE 3: HEAVY ENHANCEMENT
// =========================================
console.log('\n⚡ PHASE 3/4: Heavy Enhancement (Technique)');
const { applyPredefinedStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
result = await applyPredefinedStack(
result.content,
'lightEnhancement', // Éviter Gemini timeout
{
...mockCsvData,
preferredProvider: 'openai',
intensity: 1.2
},
{ source: 'pipeline_4_phases_enhancement_report' }
);
assert.ok(result.content, 'Heavy enhancement appliqué');
console.log('✅ Phase 3: Heavy enhancement terminé');
console.log(`📊 Enhancement: ${result.stats?.layersApplied || 'technique'} couches appliquées`);
// =========================================
// PHASE 4: HUMAN TOUCH
// =========================================
console.log('\n👤 PHASE 4/4: Human Touch (Simulation Humaine)');
const { applyPredefinedSimulation } = requireCommonJS('human-simulation/HumanSimulationLayers');
result = await applyPredefinedSimulation(
result.content,
'lightSimulation',
{
...mockCsvData,
humanization: 0.7,
fatigueLevel: 0.3,
preferredProvider: 'claude'
}
);
assert.ok(result.content, 'Human touch appliqué');
console.log('✅ Phase 4: Human touch terminé');
console.log(`📊 Humanisation: simulation avec personnalité ${mockCsvData.personality.nom}`);
// =========================================
// VALIDATION FINALE
// =========================================
console.log('\n🎯 === VALIDATION PIPELINE 4 PHASES ===');
const finalContent = result.content;
const contentKeys = Object.keys(finalContent);
// Vérifications qualité finale
assert.ok(contentKeys.length >= 4, `Au moins 4 éléments (trouvé: ${contentKeys.length})`);
// Vérification contenu non vide
contentKeys.forEach(key => {
assert.ok(finalContent[key] && finalContent[key].length > 50,
`Element ${key} doit contenir du contenu substantiel`);
});
console.log('\n📈 === RÉSULTATS PIPELINE 4 PHASES ===');
console.log(`✅ 4 phases exécutées avec succès`);
console.log(`📝 Content final: ${contentKeys.length} éléments`);
console.log(`📊 Longueur totale: ${Object.values(finalContent).join(' ').length} caractères`);
console.log(`🎭 Personnalité: ${mockCsvData.personality.nom} (${mockCsvData.personality.style})`);
console.log(`🛡️ Anti-détection: Stack lightDefense appliqué`);
console.log(`⚡ Enhancement: Stack lightEnhancement appliqué`);
console.log(`👤 Humanisation: lightSimulation appliquée`);
// Affichage échantillon final
console.log('\n📄 === ÉCHANTILLON CONTENT FINAL ===');
contentKeys.slice(0, 2).forEach(key => {
const preview = finalContent[key].substring(0, 120) + '...';
console.log(`${key}: "${preview}"`);
});
console.log('\n🎉 PIPELINE 4 PHASES RÉUSSI AVEC RAPPORT !');
// Test supplémentaire pour forcer plus d'appels LLM et garantir le rapport
console.log('\n🔄 APPEL LLM SUPPLÉMENTAIRE POUR RAPPORT...');
const { applyPredefinedStack: extraStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
await extraStack(
{ 'Test_Extra': 'Test supplémentaire pour forcer génération rapport pipeline 4 phases' },
'lightEnhancement',
{
...mockCsvData,
preferredProvider: 'openai',
intensity: 0.8
},
{ source: 'pipeline_4_phases_extra_call_report' }
);
console.log('✅ Appel LLM supplémentaire terminé - rapport garantie !');
});
console.log('\n🔥 Test pipeline 4 phases avec génération rapport FORCÉE');
console.log('📋 Workflow: Génération → Adversarial → Enhancement → Human Touch + Extra LLM');
console.log('🎯 Objectif: AutoReporter OBLIGATOIRE');