seogeneratorserver/tests/content/selective-enhancement.test.js

70 lines
2.7 KiB
JavaScript

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');
});