70 lines
2.7 KiB
JavaScript
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');
|
|
}); |