diff --git a/modules/mournblade-cyd2-utility.js b/modules/mournblade-cyd2-utility.js index 46a289e..f9f1f7c 100644 --- a/modules/mournblade-cyd2-utility.js +++ b/modules/mournblade-cyd2-utility.js @@ -46,6 +46,9 @@ export class MournbladeCYD2Utility { Handlebars.registerHelper('mul', function (a, b) { return parseInt(a) * parseInt(b); }) + Handlebars.registerHelper('subtract', function (a, b) { + return parseInt(a) - parseInt(b); + }) Handlebars.registerHelper('select', function(value, options) { const html = options.fn(this); const escaped = String(value).replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); diff --git a/test-templates.js b/test-templates.js index 2b9d696..a161a46 100644 --- a/test-templates.js +++ b/test-templates.js @@ -191,6 +191,47 @@ if (!durationTypeFound) { console.log(' ✅ Aucune utilisation de duration.type (utilise duration.units)'); } +// 8. Vérification de l'utilisation du helper subtract +console.log('\n8. Vérification de l\'utilisation du helper subtract :'); +const subtractPattern = /subtract/g; +const subtractFiles = [ + 'templates/partial-active-effects.hbs', + 'templates/partial-item-effects.hbs' +]; + +let subtractUsed = false; +let subtractRegistered = false; + +// Vérifier que le helper est utilisé dans les templates +subtractFiles.forEach(file => { + try { + const content = fs.readFileSync(path.join(__dirname, file), 'utf8'); + if (subtractPattern.test(content)) { + subtractUsed = true; + } + } catch (err) { + // Fichier introuvable, ignorer + } +}); + +// Vérifier que le helper est enregistré +try { + const utilityContent = fs.readFileSync(path.join(__dirname, 'modules/mournblade-cyd2-utility.js'), 'utf8'); + if (/Handlebars\.registerHelper\('subtract'/g.test(utilityContent)) { + subtractRegistered = true; + } +} catch (err) { + // Fichier introuvable, ignorer +} + +if (subtractUsed && subtractRegistered) { + console.log(' ✅ Helper subtract est enregistré et utilisé'); +} else if (subtractUsed && !subtractRegistered) { + console.log(' ❌ Helper subtract est utilisé mais pas enregistré'); +} else if (!subtractUsed) { + console.log(' ✅ Helper subtract n\'est pas utilisé (ou plus utilisé)'); +} + // Résumé console.log('\n=== Résumé ==='); console.log(`Templates préchargés: ${loaded.length}`); @@ -200,8 +241,9 @@ console.log(`Fichier JSON valide: ${errors.length === 0 ? 'Oui' : 'Non'}`); console.log(`API dépréciée utilisée: ${deprecatedFound ? 'Oui' : 'Non'}`); console.log(`Référence à effect.webp: ${effectWebpFound ? 'Oui' : 'Non'}`); console.log(`Utilisation de duration.type: ${durationTypeFound ? 'Oui' : 'Non'}`); +console.log(`Helper subtract: ${(subtractUsed && subtractRegistered) ? 'OK' : (subtractUsed ? 'Manquant' : 'Non utilisé')}`); -if (errors.length === 0 && missingPartials.length === 0 && !deprecatedFound && !effectWebpFound && !durationTypeFound) { +if (errors.length === 0 && missingPartials.length === 0 && !deprecatedFound && !effectWebpFound && !durationTypeFound && (subtractUsed ? subtractRegistered : true)) { console.log('\n✅ Toutes les vérifications ont réussi !'); process.exit(0); } else {