seo-generator-server/tests/fast-massive-ti.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

235 lines
7.7 KiB
JavaScript

import test from 'node:test';
import assert from 'node:assert';
import { requireCommonJS } from './_helpers/commonjs-bridge.js';
import { AutoReporter } from './reporters/AutoReporter.js';
/**
* 10 TESTS TI RAPIDES - ÉVITE GEMINI POUR PERFORMANCE
* Focus OpenAI + Claude uniquement pour rapports rapides
*/
// Auto-Reporter Configuration
const autoReporter = new AutoReporter();
// Configuration test rapide
const mockCsvData = {
mc0: 'plaque test rapide',
t0: 'Test rapide applications partielles',
personality: {
nom: 'Marc',
style: 'technique',
description: 'Expert technique rapide'
}
};
const mockContentRich = {
'Titre_H1': 'Test titre avec contenu générique nécessitant amélioration technique avancée',
'Introduction': 'Introduction générique avec vocabulaire basique à améliorer rapidement',
'Contenu_Principal': 'Contenu principal avec termes génériques optimal et efficace nécessitant précision technique urgente',
'Conclusion': 'Conclusion basique qui nécessite enhancement professionnel rapide'
};
console.log('🚀 10 TESTS TI RAPIDES - FOCUS PERFORMANCE');
console.log('⚡ OpenAI + Claude seulement (évite Gemini timeout)');
// =========================================
// TESTS SELECTIVE RAPIDES - OPENAI SEULEMENT
// =========================================
test('Rapide TI 1: lightEnhancement OpenAI', { timeout: 45000 }, async () => {
const { applyPredefinedStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
const result = await applyPredefinedStack(
mockContentRich,
'lightEnhancement',
mockCsvData,
{ source: 'rapide_ti_1', preferredProvider: 'openai' }
);
assert.ok(result.content, 'Content généré');
console.log('✅ Rapide TI 1: lightEnhancement OpenAI');
});
test('Rapide TI 2: lightEnhancement intensité élevée', { timeout: 45000 }, async () => {
const { applyPredefinedStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
const result = await applyPredefinedStack(
mockContentRich,
'lightEnhancement',
{ ...mockCsvData, intensity: 1.2, preferredProvider: 'openai' },
{ source: 'rapide_ti_2' }
);
assert.ok(result.content, 'Content généré');
console.log('✅ Rapide TI 2: lightEnhancement intensité élevée');
});
test('Rapide TI 3: lightEnhancement Claude', { timeout: 60000 }, async () => {
const { applyPredefinedStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
const result = await applyPredefinedStack(
mockContentRich,
'lightEnhancement',
{ ...mockCsvData, preferredProvider: 'claude' },
{ source: 'rapide_ti_3' }
);
assert.ok(result.content, 'Content généré');
console.log('✅ Rapide TI 3: lightEnhancement Claude');
});
// =========================================
// TESTS ADVERSARIAL RAPIDES
// =========================================
test('Rapide TI 4: Adversarial lightDefense', { timeout: 60000 }, async () => {
const AdversarialLayers = requireCommonJS('adversarial-generation/AdversarialLayers');
const result = await AdversarialLayers.applyPredefinedStack(
mockContentRich,
'lightDefense',
{ ...mockCsvData, preferredProvider: 'claude' },
{ source: 'rapide_ti_4' }
);
assert.ok(result.content, 'Content généré');
console.log('✅ Rapide TI 4: Adversarial lightDefense');
});
test('Rapide TI 5: Adversarial standardDefense', { timeout: 90000 }, async () => {
const AdversarialLayers = requireCommonJS('adversarial-generation/AdversarialLayers');
const result = await AdversarialLayers.applyPredefinedStack(
mockContentRich,
'standardDefense',
{ ...mockCsvData, preferredProvider: 'claude' },
{ source: 'rapide_ti_5' }
);
assert.ok(result.content, 'Content généré');
console.log('✅ Rapide TI 5: Adversarial standardDefense');
});
// =========================================
// TESTS CONFIGURATIONS SPÉCIALES
// =========================================
test('Rapide TI 6: Personnalité Sophie OpenAI', { timeout: 45000 }, async () => {
const { applyPredefinedStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
const customCsvData = {
...mockCsvData,
personality: {
nom: 'Sophie',
style: 'créatif',
description: 'Experte créative'
},
preferredProvider: 'openai'
};
const result = await applyPredefinedStack(
mockContentRich,
'lightEnhancement',
customCsvData,
{ source: 'rapide_ti_6' }
);
assert.ok(result.content, 'Content généré');
console.log('✅ Rapide TI 6: Personnalité Sophie OpenAI');
});
test('Rapide TI 7: Contexte industriel', { timeout: 45000 }, async () => {
const { applyPredefinedStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
const specialCsvData = {
...mockCsvData,
mc0: 'système industriel rapide',
t0: 'Optimisation système industriel performance',
preferredProvider: 'openai'
};
const result = await applyPredefinedStack(
mockContentRich,
'lightEnhancement',
specialCsvData,
{ source: 'rapide_ti_7' }
);
assert.ok(result.content, 'Content généré');
console.log('✅ Rapide TI 7: Contexte industriel');
});
// =========================================
// TESTS PIPELINES RAPIDES
// =========================================
test('Rapide TI 8: Pipeline light → lightDefense', { timeout: 120000 }, async () => {
const { applyPredefinedStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
const AdversarialLayers = requireCommonJS('adversarial-generation/AdversarialLayers');
// Phase 1: Selective (OpenAI)
let result = await applyPredefinedStack(
mockContentRich,
'lightEnhancement',
{ ...mockCsvData, preferredProvider: 'openai' },
{ source: 'rapide_ti_8_phase1' }
);
// Phase 2: Adversarial (Claude)
result = await AdversarialLayers.applyPredefinedStack(
result.content,
'lightDefense',
{ ...mockCsvData, preferredProvider: 'claude' },
{ source: 'rapide_ti_8_phase2' }
);
assert.ok(result.content, 'Pipeline content généré');
console.log('✅ Rapide TI 8: Pipeline light → lightDefense');
});
test('Rapide TI 9: Double lightEnhancement', { timeout: 90000 }, async () => {
const { applyPredefinedStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
// Phase 1: OpenAI
let result = await applyPredefinedStack(
mockContentRich,
'lightEnhancement',
{ ...mockCsvData, preferredProvider: 'openai', intensity: 0.8 },
{ source: 'rapide_ti_9_phase1' }
);
// Phase 2: Claude
result = await applyPredefinedStack(
result.content,
'lightEnhancement',
{ ...mockCsvData, preferredProvider: 'claude', intensity: 0.9 },
{ source: 'rapide_ti_9_phase2' }
);
assert.ok(result.content, 'Double enhancement content généré');
console.log('✅ Rapide TI 9: Double lightEnhancement');
});
test('Rapide TI 10: Test stress multiple providers', { timeout: 90000 }, async () => {
const { applyPredefinedStack } = requireCommonJS('selective-enhancement/SelectiveLayers');
// Test avec rotation de providers
const providers = ['openai', 'claude', 'openai'];
let result = { content: mockContentRich };
for (let i = 0; i < providers.length; i++) {
result = await applyPredefinedStack(
result.content,
'lightEnhancement',
{ ...mockCsvData, preferredProvider: providers[i], intensity: 0.7 + (i * 0.1) },
{ source: `rapide_ti_10_phase${i + 1}` }
);
}
assert.ok(result.content, 'Multi-provider content généré');
console.log('✅ Rapide TI 10: Test stress multiple providers');
});
console.log('⚡ Tests optimisés pour performance - évite les timeouts Gemini');
console.log('🎯 Timeouts réduits : 45-120 secondes maximum par test');
console.log('🚀 Focus OpenAI (rapide) + Claude (qualité) seulement');