// ======================================== // TEST PIPELINE COMPLET AVEC TENDANCES // Test du pipeline complet : Google Sheets + Digital Ocean + Tendances + PromptEngine // ======================================== const { handleFullWorkflow } = require('../lib/Main'); const { TrendManager } = require('../lib/trend-prompts/TrendManager'); const { DynamicPromptEngine } = require('../lib/prompt-engine/DynamicPromptEngine'); async function testFullPipelineWithTrends() { console.log('πŸš€ === TEST PIPELINE COMPLET AVEC TENDANCES ===\n'); // ======================================== // TEST 1: PIPELINE STANDARD (BASELINE) // ======================================== console.log('πŸ“Š === TEST 1: PIPELINE STANDARD (BASELINE) ==='); try { console.log('⏳ ExΓ©cution pipeline standard ligne 2...'); const baselineResult = await handleFullWorkflow({ rowNumber: 2, source: 'test_full_pipeline_baseline', selectiveStack: 'standardEnhancement', adversarialMode: 'light', humanSimulationMode: 'none', patternBreakingMode: 'none', intensity: 1.0, saveIntermediateSteps: true }); console.log('βœ… Pipeline standard terminΓ©:'); console.log(` β€’ Success: ${baselineResult.success}`); console.log(` β€’ Article ID: ${baselineResult.articleId}`); console.log(` β€’ Version finale: ${baselineResult.finalVersion}`); console.log(` β€’ Mots: ${baselineResult.wordCount}`); console.log(` β€’ DurΓ©e: ${baselineResult.duration}ms`); if (baselineResult.finalText) { console.log(` β€’ AperΓ§u: ${baselineResult.finalText.substring(0, 150)}...`); } } catch (error) { console.log(`❌ Erreur pipeline standard: ${error.message}`); } console.log('\n' + '='.repeat(80) + '\n'); // ======================================== // TEST 2: PIPELINE AVEC TENDANCE ECO-RESPONSABLE // ======================================== console.log('🌱 === TEST 2: PIPELINE AVEC TENDANCE ECO-RESPONSABLE ==='); try { console.log('⏳ ExΓ©cution pipeline avec tendance eco-responsable...'); const ecoResult = await handleFullWorkflow({ rowNumber: 3, source: 'test_full_pipeline_eco', selectiveStack: 'standardEnhancement', adversarialMode: 'light', humanSimulationMode: 'lightSimulation', patternBreakingMode: 'syntaxFocus', intensity: 1.1, trendId: 'eco-responsable', // ← NOUVELLE TENDANCE saveIntermediateSteps: true }); console.log('βœ… Pipeline eco-responsable terminΓ©:'); console.log(` β€’ Success: ${ecoResult.success}`); console.log(` β€’ Article ID: ${ecoResult.articleId}`); console.log(` β€’ Version finale: ${ecoResult.finalVersion}`); console.log(` β€’ Mots: ${ecoResult.wordCount}`); console.log(` β€’ DurΓ©e: ${ecoResult.duration}ms`); if (ecoResult.finalText) { console.log(` β€’ AperΓ§u: ${ecoResult.finalText.substring(0, 150)}...`); } } catch (error) { console.log(`❌ Erreur pipeline eco: ${error.message}`); } console.log('\n' + '='.repeat(80) + '\n'); // ======================================== // TEST 3: PIPELINE AVEC TENDANCE TECH-INNOVATION // ======================================== console.log('πŸš€ === TEST 3: PIPELINE AVEC TENDANCE TECH-INNOVATION ==='); try { console.log('⏳ ExΓ©cution pipeline avec tendance tech-innovation...'); const techResult = await handleFullWorkflow({ rowNumber: 4, source: 'test_full_pipeline_tech', selectiveStack: 'fullEnhancement', adversarialMode: 'standard', humanSimulationMode: 'personalityFocus', patternBreakingMode: 'connectorsFocus', intensity: 1.2, trendId: 'tech-innovation', // ← TENDANCE TECH saveIntermediateSteps: true }); console.log('βœ… Pipeline tech-innovation terminΓ©:'); console.log(` β€’ Success: ${techResult.success}`); console.log(` β€’ Article ID: ${techResult.articleId}`); console.log(` β€’ Version finale: ${techResult.finalVersion}`); console.log(` β€’ Mots: ${techResult.wordCount}`); console.log(` β€’ DurΓ©e: ${techResult.duration}ms`); if (techResult.finalText) { console.log(` β€’ AperΓ§u: ${techResult.finalText.substring(0, 150)}...`); } } catch (error) { console.log(`❌ Erreur pipeline tech: ${error.message}`); } console.log('\n' + '='.repeat(80) + '\n'); // ======================================== // TEST 4: PIPELINE ARTISANAL-PREMIUM INTENSIF // ======================================== console.log('🎨 === TEST 4: PIPELINE ARTISANAL-PREMIUM INTENSIF ==='); try { console.log('⏳ ExΓ©cution pipeline artisanal premium intensif...'); const artisanalResult = await handleFullWorkflow({ rowNumber: 5, source: 'test_full_pipeline_artisanal', selectiveStack: 'personalityFocus', adversarialMode: 'heavy', humanSimulationMode: 'adaptive', patternBreakingMode: 'adaptive', intensity: 1.4, trendId: 'artisanal-premium', // ← TENDANCE ARTISANALE saveIntermediateSteps: true }); console.log('βœ… Pipeline artisanal-premium terminΓ©:'); console.log(` β€’ Success: ${artisanalResult.success}`); console.log(` β€’ Article ID: ${artisanalResult.articleId}`); console.log(` β€’ Version finale: ${artisanalResult.finalVersion}`); console.log(` β€’ Mots: ${artisanalResult.wordCount}`); console.log(` β€’ DurΓ©e: ${artisanalResult.duration}ms`); if (artisanalResult.finalText) { console.log(` β€’ AperΓ§u: ${artisanalResult.finalText.substring(0, 150)}...`); } } catch (error) { console.log(`❌ Erreur pipeline artisanal: ${error.message}`); } console.log('\n' + '='.repeat(80) + '\n'); // ======================================== // TEST 5: COMPARAISON DES RΓ‰SULTATS // ======================================== console.log('βš–οΈ === COMPARAISON DES RΓ‰SULTATS ==='); console.log('πŸ“Š RΓ©sumΓ© comparatif:'); console.log('β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”'); console.log('β”‚ Configuration β”‚ Article β”‚ Mots β”‚ DurΓ©e β”‚ Tendance β”‚'); console.log('β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€'); console.log('β”‚ Standard β”‚ Ligne 2 β”‚ Variable β”‚ Variable β”‚ Aucune β”‚'); console.log('β”‚ Eco-responsable β”‚ Ligne 3 β”‚ Variable β”‚ Variable β”‚ Γ‰cologie β”‚'); console.log('β”‚ Tech-innovation β”‚ Ligne 4 β”‚ Variable β”‚ Variable β”‚ Technologie β”‚'); console.log('β”‚ Artisanal β”‚ Ligne 5 β”‚ Variable β”‚ Variable β”‚ Premium β”‚'); console.log('β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜'); // ======================================== // TEST 6: VALIDATION TENDANCES APPLIQUΓ‰ES // ======================================== console.log('\nπŸ” === VALIDATION DES TENDANCES ==='); const trendManager = new TrendManager(); console.log('πŸ“‹ Tendances utilisΓ©es dans les tests:'); // Test eco-responsable await trendManager.setTrend('eco-responsable'); const ecoTrend = trendManager.getCurrentTrend(); console.log(`\n🌱 ${ecoTrend.name}:`); console.log(` β€’ Termes cibles: ${ecoTrend.config.technical.targetTerms.join(', ')}`); console.log(` β€’ Style: ${ecoTrend.config.style.targetStyle}`); // Test tech-innovation await trendManager.setTrend('tech-innovation'); const techTrend = trendManager.getCurrentTrend(); console.log(`\nπŸš€ ${techTrend.name}:`); console.log(` β€’ Termes cibles: ${techTrend.config.technical.targetTerms.join(', ')}`); console.log(` β€’ Style: ${techTrend.config.style.targetStyle}`); // Test artisanal-premium await trendManager.setTrend('artisanal-premium'); const artisanalTrend = trendManager.getCurrentTrend(); console.log(`\n🎨 ${artisanalTrend.name}:`); console.log(` β€’ Termes cibles: ${artisanalTrend.config.technical.targetTerms.join(', ')}`); console.log(` β€’ Style: ${artisanalTrend.config.style.targetStyle}`); console.log('\n🎯 === TEST PIPELINE COMPLET TERMINΓ‰ ==='); console.log('✨ FonctionnalitΓ©s testΓ©es:'); console.log(' β€’ βœ… Google Sheets data loading'); console.log(' β€’ βœ… Digital Ocean XML templates'); console.log(' β€’ βœ… SystΓ¨me de tendances modulaires'); console.log(' β€’ βœ… Pipeline modulaire complet'); console.log(' β€’ βœ… Sauvegarde versionnΓ©e (v1.0β†’v2.0)'); console.log(' β€’ βœ… Comparaison multi-configurations'); } // FONCTION HELPER - Test pipeline simple async function quickPipelineTest(rowNumber, trendId = null) { console.log(`\nπŸš€ Test rapide pipeline ligne ${rowNumber}${trendId ? ` (${trendId})` : ''}`); try { const result = await handleFullWorkflow({ rowNumber, source: `quick_test_${rowNumber}`, selectiveStack: 'standardEnhancement', adversarialMode: 'light', intensity: 1.0, trendId, saveIntermediateSteps: false }); console.log('βœ… RΓ©sultat:'); console.log(` β€’ Article ID: ${result.articleId}`); console.log(` β€’ Mots: ${result.wordCount}`); console.log(` β€’ DurΓ©e: ${result.duration}ms`); return result; } catch (error) { console.log(`❌ Erreur: ${error.message}`); return null; } } // EXΓ‰CUTER TEST if (require.main === module) { testFullPipelineWithTrends() .catch(console.error); } // Export pour usage externe module.exports = { testFullPipelineWithTrends, quickPipelineTest };