You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[CI] PHPStan scanne les bouchons de test de Saturne : cinq erreurs réelles restent invisibles #509
phpstan.neon prend ../saturne/ en entier dans scanDirectories, tests/ compris. Or le bootstrap PHPUnit de Saturne déclare des classes bouchons DoliDB, Conf, Translate, User et HookManager, qui gagnent sur les vraies classes du coeur dans le sparse-checkout de la CI. Résultat : l'analyse est plus verte qu'elle ne devrait, et des erreurs réelles ne sortent jamais.
En ajoutant - ../saturne/tests/ (?) à excludePaths.analyseAndScan, cinq erreurs apparaissent :
Loose comparison using == between 'update' and 'update' will always evaluate to true — une comparaison qui ne teste rien ;
Cannot access property $rowid on object|false — un retour de fetch_object() déréférencé sans garde ;
Parameter #4 $month of function dol_mktime expects int, string given ;
Parameter #5 $day of function dol_mktime expects int, string given ;
Parameter #6 $year of function dol_mktime expects int, string given — trois GETPOST non typés, à passer en GETPOSTINT.
Elles méritent d'être corrigées, pas gelées : la première est un test mort, la deuxième un warning PHP 8 en puissance.
L'exclusion avait été ajoutée à la branche de la 23.1.0 puis retirée avant le merge, pour ne pas mélanger une correction de fond avec une PR de release (#507).
Contexte : le même trou a été trouvé sur Digirisk (Evarisk/Digirisk#5265), DigiQuali, DoliMeet, DoliSIRH et DigiBoard. Attention, l'alignement de phpstan.neon sur le gabarit commun retire cette exclusion : elle a besoin d'y être intégrée, sinon elle se perd à chaque passage.
Activity
#509 [CI] fix: sortir les stubs de test de saturne, et corriger ce qu…
Merge pull request #510 from nicolas-eoxia/ci/509-exclusion-stubs