feat: Migre les flux article/auteur vers oaId et fiabilise l’édition des auteurs
Résumé
Cette branche change id => oaId pour les articles et les auteurs, afin d'éviter la confusion entre l'id d'openalex (oaId) et l'id technique de Mongo (_id).
Elle renforce aussi le flux d’édition des auteurs dans le formulaire d’article (ajout/suppression/auteurs en attente) pour éviter des états incohérents côté UI et API.
Changements fonctionnels
Alignement des identifiants article/auteur sur oaId
Migration et validation des données existantes
- Des scripts de migration couvrent les renommages/normalisations de champs d’identifiants existants.
- Les validateurs MongoDB des collections articles/auteurs sont alignés sur le nouveau contrat.
- Le script de migration principal est repositionné côté backend pour un usage opérationnel plus clair.
Édition des auteurs dans le formulaire d’article
- La suppression d’auteur n’appelle plus l’API delete quand le lien article-auteur n’a pas encore été persisté.
- Les invalidations de cache/requêtes liées aux mutations d’auteurs sont renforcées.
Couverture de tests
- Des tests frontend/backend supplémentaires couvrent le contrat
oaId, les utilitaires de transformation et les flux API. - Les tests du formulaire et des composants auteurs couvrent les cas de création/suppression et les états en attente.
Notes relecteurs
- Migration requise : appliquer les scripts de migration + validateurs avant déploiement complet.
Plan de test manuel
Prérequis
-
Environnement local lancé ( backend+frontend) -
Base avec articles/auteurs existants -
Migrations et validateurs appliqués
Happy path article/auteur
-
Ouvrir un article existant, vérifier affichage correct des auteurs -
Ajouter un auteur depuis la base interne, sauvegarder, recharger, vérifier persistance -
Ajouter un auteur depuis OpenAlex, sauvegarder, recharger, vérifier persistance -
Ajouter un auteur manuel, sauvegarder, recharger, vérifier persistance -
Supprimer un auteur existant, sauvegarder, recharger, vérifier suppression effective
Cas d’erreur et permissions
-
Simuler un 401sur mutation auteur/article, vérifier message d’erreur utilisateur -
Simuler un 403, vérifier blocage sans corruption de l’état local -
Simuler un 409sur mise à jour d’auteurs, vérifier message + absence d’état incohérent
Régressions clés
-
Import d’un article OpenAlex : vérifier mapping snapshots/topics avec oaId -
Recherche/listes articles et auteurs : vérifier absence de régression d’affichage -
Vérifier disparition du badge “modifié manuellement” incorrect dans les cas attendus
Optionnel
-
Exécuter les suites de tests frontend/backend ciblées pour confirmer la non-régression technique