Module DoliSCAN pour Dolibarr doliscan-for-dolibarr
| Réf | Intitulé | Cycle | Couverture | Verdict |
|---|---|---|---|---|
| Comptes DoliSCAN | ||||
| DSCDLB-025 |
Méthodes de gestion d'un compte : statuts, libellés, liens, spécimen
DétailsObjectif : couvrir les méthodes de cycle de vie au-delà du simple CRUD. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/MyAccountCrudTest.php (18 methodes, suite integration). |
À tester | Couvert | Non testé |
| DSCDLB-027 |
Résolution du compte DoliSCAN d'un utilisateur donné
DétailsObjectif : le pipeline de synchronisation résout les identifiants DoliSCAN de l'utilisateur courant par cette recherche. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/MyAccountFetchFirstTest.php (9 methodes, suite integration). |
À tester | Couvert | Non testé |
| Dates ISO 8601 et fuseaux | ||||
| DSCDLB-004 |
Conversion des dates ISO 8601 UTC de l'API en date locale
DétailsObjectif : l'API doliscan.fr renvoie des dates ISO 8601 en UTC ("2026-03-31T22:00:00.000000Z" = 1er avril 2026 en Europe/Paris). Sans conversion, ces chaînes partent telles quelles dans les filtres SQL de Dolibarr qui stockent des dates locales, et la recherche de doublon échoue (bug PROV119 observé en production). Vérifications :
Couverture automatique : test/phpunit/unit/IsoDateConversionTest.php (8 methodes, suite unit). Les tests forcent le fuseau Europe/Paris. |
À tester | Couvert | Non testé |
| Doublons et orphelines | ||||
| DSCDLB-019 |
Détection d'une note de frais existante sur la période et l'utilisateur
DétailsObjectif : éviter qu'une synchronisation quotidienne ne recrée chaque jour la note de frais du mois. La recherche porte sur le triplet date de début, date de fin, utilisateur. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/DoublonNDFTest.php (8 methodes, suite integration). |
À tester | Couvert | Non testé |
| Helpers purs et compatibilité | ||||
| DSCDLB-001 |
Couche de compatibilité Dolibarr (config globale, droits, filtres ECM)
DétailsObjectif : le module doit fonctionner de Dolibarr 18 à 23 sans branche morte ni appel à une API absente. Vérifications :
Couverture automatique : test/phpunit/unit/BackportCompatTest.php (34 methodes, suite unit). |
À tester | Couvert | Non testé |
| DSCDLB-002 |
Type de retour uniforme SyncResult sur le pipeline d'import
DétailsObjectif : toutes les étapes d'import et de synchronisation renvoient le même objet de résultat, sans casser le code historique qui lisait ->message et ->error. Vérifications :
Couverture automatique : test/phpunit/unit/SyncResultTest.php (10 methodes, suite unit). |
À tester | Couvert | Non testé |
| DSCDLB-003 |
Helpers purs de calcul : TVA, libellés de ligne, mapping du moyen de paiement
DétailsObjectif : les fonctions du chemin critique de l'import multi-TVA sont exactes. Une régression ici corrompt silencieusement les factures fournisseur et les notes de frais. Vérifications :
Couverture automatique : test/phpunit/unit/MyndfPureHelpersTest.php (37 methodes, suite unit). |
À tester | Couvert | Non testé |
| Import des notes de frais | ||||
| DSCDLB-008 |
Création de la note de frais Dolibarr d'accueil de l'import
DétailsObjectif : create_ndf() amorce le pipeline d'import en créant, ou en réutilisant, la note de frais Dolibarr de la période. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/CreateNdfTest.php (6 methodes, suite integration). |
À tester | Couvert | Non testé |
| DSCDLB-010 |
Garde-fous d'entrée de l'import (déjà importé, JSON invalide)
DétailsObjectif : rejeter une entrée invalide avant tout appel réseau, pour ne jamais corrompre la base sur une charge utile abîmée. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/ImportNDFGuardsTest.php (2 methodes, suite integration). |
À tester | Couvert | Non testé |
| DSCDLB-017 |
Façade objet NDFImporter du pipeline d'import
DétailsObjectif : le point d'entrée objet du pipeline capture la base et l'utilisateur une seule fois, et renvoie systématiquement un résultat de synchronisation uniforme. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/NDFImporterTest.php (6 methodes, suite integration). |
À tester | Couvert | Non testé |
| Jetons d'API et horloge | ||||
| DSCDLB-039 |
Détection locale de l'expiration d'un jeton, sans appel réseau
DétailsObjectif : lire la date d'expiration inscrite dans le jeton d'API pour le renouveler AVANT de dépenser une requête HTTP vouée à répondre 401. La signature n'est jamais vérifiée localement, c'est le rôle du serveur. Vérifications :
Couverture automatique : test/phpunit/unit/TokenExpiryTest.php (28 methodes, suite unit). |
À tester | Couvert | Non testé |
| DSCDLB-041 |
Auto-réparation du jeton pendant l'import (préventive et réactive)
DétailsObjectif : un jeton périmé faisait échouer l'import en silence ("ERROR download details"), la note de frais était perdue et le client ouvrait un ticket. Deux niveaux de réparation sont désormais en place. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/ImportNDFTokenAutoRepairTest.php (4 methodes, suite integration). |
À tester | Couvert | Non testé |
| Notes de frais DoliSCAN | ||||
| DSCDLB-029 |
Cycle de vie d'un enregistrement de note de frais DoliSCAN
DétailsObjectif : l'enregistrement DoliSCAN porte la charge utile brute venue du mobile et le lien vers la note de frais Dolibarr. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/MyNDFTest.php (11 methodes, suite integration). |
À tester | Couvert | Non testé |
| DSCDLB-030 |
Méthodes de gestion d'une note de frais : statuts, libellés, métadonnées
DétailsObjectif : couvrir les méthodes de cycle de vie au-delà du CRUD de base. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/MyNDFCrudTest.php (22 methodes, suite integration). |
À tester | Couvert | Non testé |
| DSCDLB-031 |
Filtres de recherche sur les listes : exactitude et non-régression SQL
DétailsObjectif : ces filtres alimentent les listes du module. Ils sont à rejouer avant et après toute modification de l'échappement SQL. Vérifications, sur les notes de frais comme sur les comptes :
Couverture automatique : test/phpunit/integration-dolibarr/FetchAllFilterTest.php (20 methodes, suite integration). |
À tester | Couvert | Non testé |
| DSCDLB-032 |
Filtres étendus : clés étrangères, entité, montants, injection SQL
DétailsObjectif : compléter la couverture des filtres sur les axes sensibles pour la sécurité et le cloisonnement. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/FetchAllExtendedFilterTest.php (7 methodes, suite integration). |
À tester | Couvert | Non testé |
| Pages d'administration et affichage | ||||
| DSCDLB-047 |
Balayage HTTP de toutes les pages du module sur un serveur réel
DétailsObjectif : détecter par requête HTTP réelle les erreurs fatales, méthodes ou fonctions indéfinies et classes manquantes que l'analyse statique ne peut pas voir sur les variables globales de Dolibarr. Vérifications :
Couverture automatique : test/phpunit/http/AdminPagesHttpTest.php (5 methodes paramétrées, suite http, serveur PHP éphémère). |
À tester | Couvert | Non testé |
| DSCDLB-048 |
Les aides d'affichage tolèrent une configuration absente
DétailsObjectif : verrouiller la correction de l'erreur fatale de la page de configuration bancaire sur un module fraîchement installé, où les constantes de banque n'existent pas encore : la valeur nulle était refusée par un typage strict. Vérifications :
Couverture automatique : test/phpunit/integration-dolibarr/DisplayHelpersTest.php (8 methodes, suite integration). |
À tester | Couvert | Non testé |
| Permissions | ||||
| DSCDLB-044 |
Contexte système, garde de changement de statut et messages lisibles
DétailsObjectif : distinguer une action humaine, qui doit respecter les droits Dolibarr, d'un import automatique, qui rejoue côté serveur ce que l'utilisateur a déjà validé sur son mobile. Et, en cas de refus, expliquer pourquoi en français plutôt que de renvoyer un code. Vérifications :
Couverture automatique : test/phpunit/unit/PermsHelpersTest.php (16 methodes, suite unit). |
À tester | Couvert | Non testé |