fix: correction des tests unitaires et ajout de nouveau test#1170
fix: correction des tests unitaires et ajout de nouveau test#1170gtolontop wants to merge 9 commits intoServerOpenMC:masterfrom
Conversation
TabList utilise PacketAdapter de ProtocolLib (dépendance compileOnly), ce qui cause un ClassNotFoundException au lancement des tests MockBukkit.
MultiBlockManager.init() est appelé via loadWithItemsAdder() qui ne s'exécute pas en environnement de test. config reste null et provoque un NPE lors du onDisable.
Le BukkitRunnable (delay 0) s'exécute pendant le load du plugin, donc le MOTD capturé est déjà le custom. Avec 2 entrées dans motd.yml, Random peut piocher la même → assertNotEquals échoue 50% du temps. Fix: forcer un MOTD connu avant de tick.
Le test testTransferBalanceWithReasonRegistersTransaction échoue car la transaction est enregistrée via runTaskAsynchronously et performTicks ne garantit pas la fin des tâches async. Ajout de waitAsyncTasksFinished() pour attendre la complétion avant de vérifier.
|
Ah tu as réussi |
|
Oui nirbose avait dit que les task en async faisait buger les tests ahaha j'ai pas pensé à te le dire |
iambibi
left a comment
There was a problem hiding this comment.
j'attends la review de Nirbose, mais pour moi ça me va
|
Il faut que je push encore une dernière version pour fix la dernière issue et se sera good :) |
|
Je suis entrain de les ajouter |
Nouveaux tests: - DateUtils: conversion secondes/millis/ticks, isBefore - InputUtils: pluralize, edge cases null/empty/décimaux - PaddingUtils: centrage, débordement, padding impair - EnumUtils: match valide/invalide/null, valeur par défaut - MathUtils: interpolation de couleurs (lerpColor) - YmlUtils: deep copy de maps/listes imbriquées - Queue: ajout, suppression, éviction LRU, taille max - ColorUtils: conversions couleur/code/nom/matériau/RGB - RandomUtils: bornes int/double/float, cas limites - EconomyManager: formatage simplifié (k/M/B suffixes)
Ajout de waitAsyncTasksFinished() après performTicks() dans tous les tests Economy qui vérifient des transactions enregistrées en async.
|
Les tests on bloqué sur de l'ancien code je l'ai fix ça build ça devrais passer mais dcp y'a des test + les fix des résultats des test qui passais pas |
|
Rename ta branche + le nom de ta pr dcp |
ltuffery
left a comment
There was a problem hiding this comment.
Ça ne paraît pas OK. J’ai juste cette remarque, puis je ferai la review finale.
| list.add(map); | ||
| } | ||
|
|
||
| if (config == null) return; |
|
Je termine tous proprement quand je rentre chez moi et se sera good |
|
et quel son les soucis ? |
Évite d'itérer inutilement sur les multiblocks si config n'a pas été initialisé (init() appelé uniquement via loadWithItemsAdder).
|
Tous devrais être bon :) |
| } | ||
|
|
||
| public static void save() { | ||
| if (config == null) return; |
There was a problem hiding this comment.
pourquoi mettre ce check ?
There was a problem hiding this comment.
@ltuffery l'avait mis dans son commit, je l'ai juste déplacé au début du fichier pour éviter d'itérer pour rien. Il a ajouter le check (je pense) parce que MultiBlockManager.init() passe par loadWithItemsAdder() qui ne tourne pas en test, dcp config reste null et save() dans le onDisable() casse un NPE
There was a problem hiding this comment.
Puis c'est vrai que si la config est nulle, ça va planter, je vois pas en quoi c'est dérangeant
There was a problem hiding this comment.
C'est plus rapide j'ai juste bouger ta ligne
There was a problem hiding this comment.
J'ai juste pas compris de quel commit tu parles
There was a problem hiding this comment.
Surtout que même @ltuffery a demandé pourquoi tu l'as mit
src/test/java/fr/openmc/core/features/economy/EconomyFormattingTest.java
Show resolved
Hide resolved
|
Vous voulez que je fasse des changements supplémentaire ? |
|
Bah je sais pas trop pour moi c'est OK, mais je crois que @ltuffery n'a pas encore fait sa review |
Okay hésitez :) |
|
Ouais désolé si ça prends un peu de temps (regarde le nombre de pr que j'ai, la majorité c'est des une lignes rien passe, je crois qu'ils ont pas encore compris que ça a commencé 🤡). |
Fixes les tests unitaires qui échouaient avec
ClassNotFoundException.Problème
SpawnerExtractorListenerimportedev.lone.itemsadder.api.CustomStack, une dépendancecompileOnlyabsente du classpath de test. Le classloader de MockBukkit résout les références de classes de façon eager, ce qui provoque unNoClassDefFoundErrorlors du chargement du plugin en test.Le listener était enregistré sans le guard
!isUnitTestVersion(), contrairement àItemsAddersListenerqui a le même problème et est déjà correctement protégé.Correction
Déplacement de
new SpawnerExtractorListener()à l'intérieur du bloc!OMCPlugin.isUnitTestVersion(), cohérent avec le fixFancyNpcsHookdu commitbd1ab12.