Checkpoint: Correction de l'erreur "Cannot read properties of undefined (reading 'replace')" lors de l'envoi de test de rappel :

- Ajout d'une vérification dans replaceEmailVariables pour gérer les templates undefined/null
- Ajout d'une vérification dans buildEmailHTML pour s'assurer que emailBody n'est jamais undefined
- Ajout d'une vérification pour headerTitle avant d'appeler replaceEmailVariables
- Protection contre les valeurs null/undefined dans toutes les fonctions de manipulation de templates
- Mise à jour du fichier todo.md pour marquer la tâche comme terminée
This commit is contained in:
Manus
2026-01-15 12:06:52 -05:00
parent 695f94ef77
commit d3645ec1cb
3 changed files with 9 additions and 3 deletions

View File

@@ -35,15 +35,15 @@ export async function generateEmailFromTemplate(
*/ */
function buildEmailHTML(template: EmailTemplate, content: string, variables?: EmailVariables): string { function buildEmailHTML(template: EmailTemplate, content: string, variables?: EmailVariables): string {
// Utiliser bodyContent si disponible, sinon utiliser content (legacy) // Utiliser bodyContent si disponible, sinon utiliser content (legacy)
let emailBody = template.bodyContent || content; let emailBody = template.bodyContent || content || '';
// Remplacer les variables si fournies // Remplacer les variables si fournies
if (variables) { if (variables && emailBody) {
emailBody = replaceEmailVariables(emailBody, variables); emailBody = replaceEmailVariables(emailBody, variables);
// Remplacer aussi dans le titre et le pied de page // Remplacer aussi dans le titre et le pied de page
template = { template = {
...template, ...template,
headerTitle: replaceEmailVariables(template.headerTitle, variables), headerTitle: template.headerTitle ? replaceEmailVariables(template.headerTitle, variables) : template.headerTitle,
footerText: template.footerText ? replaceEmailVariables(template.footerText, variables) : template.footerText, footerText: template.footerText ? replaceEmailVariables(template.footerText, variables) : template.footerText,
}; };
} }

View File

@@ -26,6 +26,11 @@ export function replaceEmailVariables(
template: string, template: string,
variables: EmailVariables variables: EmailVariables
): string { ): string {
// Vérifier que le template n'est pas undefined ou null
if (!template) {
return '';
}
let result = template; let result = template;
// Remplacer chaque variable trouvée dans le template // Remplacer chaque variable trouvée dans le template

View File

@@ -818,3 +818,4 @@
- [ ] Corriger les erreurs TypeScript dans les fonctions de gestion des présences - [ ] Corriger les erreurs TypeScript dans les fonctions de gestion des présences
- [ ] Corriger les erreurs TypeScript dans les fonctions de gestion des logs - [ ] Corriger les erreurs TypeScript dans les fonctions de gestion des logs
- [x] Corriger l'erreur de validation du type de rappel dans la procédure testerRappel (typeRappel invalide) - [x] Corriger l'erreur de validation du type de rappel dans la procédure testerRappel (typeRappel invalide)
- [x] Corriger l'erreur "Cannot read properties of undefined (reading 'replace')" lors de l'envoi de test de rappel