import test from 'node:test'; import assert from 'node:assert'; import { requireCommonJS } from '../_helpers/commonjs-bridge.js'; test('SelectiveEnhancement: createBatchBasePrompt structure propre', () => { const { createBatchBasePrompt } = requireCommonJS('SelectiveEnhancement'); const mockElements = [{ tag: '|Titre_H1_1|', element: { type: 'titre_h1', name: 'Titre_H1_1' } }]; const mockCsvData = { mc0: 'plaque personnalisée', personality: { nom: 'Marc', style: 'technique', description: 'Expert technique' } }; const prompt = createBatchBasePrompt(mockElements, 'titre', mockCsvData); // Vérifier la nouvelle structure rationnelle assert.ok(prompt.includes('=== 1. CONTEXTE ==='), 'Prompt doit contenir section CONTEXTE'); assert.ok(prompt.includes('=== 2. PERSONNALITÉ ==='), 'Prompt doit contenir section PERSONNALITÉ'); assert.ok(prompt.includes('=== 3. RÈGLES GÉNÉRALES ==='), 'Prompt doit contenir section RÈGLES'); assert.ok(prompt.includes('=== 4. ÉLÉMENTS À GÉNÉRER ==='), 'Prompt doit contenir section ÉLÉMENTS'); // Vérifier absence des mentions polluantes assert.ok(!prompt.includes('CRÉER UN TITRE H1 PRINCIPAL (8-12 mots)'), 'Pas de mentions techniques polluantes'); assert.ok(!prompt.includes('NE PAS écrire'), 'Pas d\'instructions négatives'); // Vérifier présence de la règle "humainement" assert.ok(prompt.includes('humainement'), 'Règle humainement présente'); console.log('✅ Structure des prompts nettoyée correctement'); }); test('SelectiveEnhancement: createBatchFAQPairsPrompt structure propre', () => { const { createBatchFAQPairsPrompt } = requireCommonJS('SelectiveEnhancement'); const mockFaqPairs = [{ question: { tag: '|FAQ_Q1|' }, answer: { tag: '|FAQ_R1|' } }]; const mockCsvData = { mc0: 'plaque personnalisée', personality: { nom: 'Sophie', style: 'commercial', description: 'Experte déco' } }; const prompt = createBatchFAQPairsPrompt(mockFaqPairs, mockCsvData); // Vérifier structure rationnelle pour FAQ assert.ok(prompt.includes('=== 1. CONTEXTE ==='), 'FAQ prompt avec structure CONTEXTE'); assert.ok(prompt.includes('=== 2. PERSONNALITÉ ==='), 'FAQ prompt avec PERSONNALITÉ'); assert.ok(prompt.includes('=== 3. RÈGLES GÉNÉRALES ==='), 'FAQ prompt avec RÈGLES'); assert.ok(prompt.includes('=== 4. PAIRES FAQ À GÉNÉRER ==='), 'FAQ prompt avec section PAIRES'); // Vérifier absence mentions polluantes FAQ assert.ok(!prompt.includes('(8-15 mots)'), 'Pas de contraintes de mots dans le prompt'); assert.ok(!prompt.includes('(50-80 mots)'), 'Pas de contraintes de longueur'); console.log('✅ Structure prompts FAQ nettoyée correctement'); });