Skip to content

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èreCouvert par
1Supprimer les caractères un par un ne réinitialise pas le champ à sa valeur par défautnormalizeUnpivotConfigForUi — repli sur null/undefined uniquement
2L'utilisateur peut vider complètement le champ et saisir un nouveau nomChaîne vide préservée pendant la saisie ; validation bloque uniquement à l'exécution

Fichiers modifiés

FichierModification
front/src/pages/admin/workflows/workflow-unpivot.engine.jsRepli attributeColumn / valueColumn conditionné à null/undefined uniquement
front/src/__tests__/pages/admin/workflows/workflow-bdd140-engines.spec.jsAjout de deux cas de test BDD-153
front/src/__tests__/components/workflows/WorkflowDepotFolderSourcePanel.spec.jsMise à jour du stub WorkflowFolderTreeSelector
front/src/__tests__/components/workflows/WorkflowInputSourcePanel.spec.jsMise à jour du stub WorkflowDocumentTreeSelector