Appearance
BDD-153 — Réinitialisation des noms de colonnes dans le bloc Dépivoter
Contexte
Dans le bloc Dépivoter, les champs « Nom colonne attribut » et « Nom colonne valeur » se réinitialisaient à leur valeur par défaut (attribut / valeur) dès que l'utilisateur supprimait le dernier caractère. L'utilisateur était bloqué dans une boucle infinie : impossible de vider complètement le champ pour en saisir un nouveau.
Cause racine
Dans normalizeUnpivotConfigForUi, le repli sur la valeur par défaut utilisait l'opérateur || :
js
// Avant
attributeColumn: sanitizeText(raw.attributeColumn).slice(0, UNPIVOT_NAME_MAX_LENGTH) || 'attribut',Une chaîne vide étant falsy, dès que l'utilisateur vidait le champ, la normalisation remplaçait silencieusement '' par 'attribut'. Ce comportement se déclenchait à chaque frappe via le computed config du panneau.
Correctif
Le repli sur la valeur par défaut ne s'applique désormais que lorsque la valeur brute est null ou undefined (champ jamais renseigné), et non lorsque l'utilisateur a explicitement vidé le champ :
js
// Après
attributeColumn:
raw.attributeColumn == null
? 'attribut'
: sanitizeText(raw.attributeColumn).slice(0, UNPIVOT_NAME_MAX_LENGTH),La validation existante (validateUnpivotConfig) détecte déjà les champs vides et bloque la prévisualisation avec un message explicite — aucune modification nécessaire côté validation.
Critères d'acceptance
| # | Critère | Couvert par |
|---|---|---|
| 1 | Supprimer les caractères un par un ne réinitialise pas le champ à sa valeur par défaut | normalizeUnpivotConfigForUi — repli sur null/undefined uniquement |
| 2 | L'utilisateur peut vider complètement le champ et saisir un nouveau nom | Chaîne vide préservée pendant la saisie ; validation bloque uniquement à l'exécution |
Fichiers modifiés
| Fichier | Modification |
|---|---|
front/src/pages/admin/workflows/workflow-unpivot.engine.js | Repli attributeColumn / valueColumn conditionné à null/undefined uniquement |
front/src/__tests__/pages/admin/workflows/workflow-bdd140-engines.spec.js | Ajout de deux cas de test BDD-153 |
front/src/__tests__/components/workflows/WorkflowDepotFolderSourcePanel.spec.js | Mise à jour du stub WorkflowFolderTreeSelector |
front/src/__tests__/components/workflows/WorkflowInputSourcePanel.spec.js | Mise à jour du stub WorkflowDocumentTreeSelector |
