fix: correction des tests unitaires et ajout de nouveau test#1170
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.
src/main/java/fr/openmc/core/features/cube/multiblocks/MultiBlockManager.java
Outdated
Show resolved
Hide resolved
|
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 :) |
src/main/java/fr/openmc/core/features/cube/multiblocks/MultiBlockManager.java
Show resolved
Hide resolved
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é 🤡). |
mdrrrr t'inquiète pas de soucis, mais yep si ta des issue je peux check |
|
@gtolontop c'est ready for review cette PR ? Car actuellement tu la mis draft |
Yep je la met |
La liaison Minecraft-Discord |
|
Après si tu veux pas faire de features comme tu veux mais ça a peu de valeur de fixer des bugs, fin c'est cool mais le joueur va pas réellement le remarquer ahah |
|
Je joue pas vraiment j'ai pas trop d'idée donc si vous voulez des truc dite le moi et je vous le ferez sans soucis mais faut me dire se que vous voulez, feature etc |
|
Je vais check les deux issue que tu as send merci |
Faudra qd même jouer pour tester ta feature hein |
|
Pour la liaison discord tu peux check le repo Plugin (de la v1), il contenait un système qui faisait la liaison discord, (avec juste une interaction base de donnée) |
Oui je sais mdrrr je disais juste je joue pas en tant que joueur xd et c'est pour ça que j'ai pas forcément des idées de se qu'il faudrait ajouter |
Je vais check j'en avais fais un à l'époque |
N'implemente pas un bot discord dans le plugin ahah Exemple : LinkerApi https://github.com/ServerOpenMC/Plugin/blob/main/src/main/java/fr/communaywen/core/utils/LinkerAPI.java Commande /link https://github.com/ServerOpenMC/Plugin/blob/main/src/main/java/fr/communaywen/core/commands/link/LinkCommand.java |
mdrrrrrrrrrrrrrrr j'avais pas prévue de foutre un bot 😂 |
PuppyTransGirl
left a comment
There was a problem hiding this comment.
la plupart sont les mêmes reviews mais à des endroits différents
| String motd = getComponentContent(server.motd()); | ||
|
|
||
| new MotdUtils(); | ||
| server.getScheduler().performTicks(12001L); |
There was a problem hiding this comment.
est-ce que le performTicks est encore utile vu que tu changes le motd instantanément ?
|
tu as des reviews @gtolontop si tu avais pas vu |
- Suppression des performTicks redondants avant waitAsyncTasksFinished - Ajout de tests NaN, Infinity, -Infinity dans InputUtilsTest - Suppression du bloc testLogging de debug dans build.gradle - Fix locale EconomyFormattingTest pour éviter les échecs liés au séparateur décimal
|
Re review nécessaire par les auteurs des changements, ensuite on pourra la merge |
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.