l semble que le test soit correctement configuré et qu’il appelle les différentes fonctions, y compris “proposeWord”, pour mettre en condition la fonction “withdraw”.

Cependant, je remarque que dans la fonction “before”, après avoir appelé la fonction “proposeWord”, vous utilisez la fonction “getIsWordCorrect” pour vérifier si le mot proposé est correct. Mais dans le test de la fonction “withdraw”, vous utilisez directement la variable “winner” du jeu pour vérifier si le joueur est le gagnant. Cela peut causer une incohérence, surtout si la variable “winner” n’est pas correctement mise à jour dans la fonction “proposeWord”.

Je vous recommande d’utiliser la fonction “getIsWordCorrect” dans votre test de la fonction “withdraw” pour vérifier si le joueur est le gagnant. Vous pouvez modifier votre test comme suit :

const isWordCorrect = await penduelInstance.getIsWordCorrect(“immuable”);
assert.isTrue(isWordCorrect, “Le mot proposé devrait être correct”);

const game = await penduelInstance.games(gameId);
assert.equal(game.winner, player2, “You are not the winner”);


Assurez-vous également que les variables “player1HasWithdrawn” et “player2HasWithdrawn” sont correctement initialisées à la valeur “false” dans
Le mot proposé devrait être correct + expected - actual -false +true
it(“devrait permettre au gagnant de retirer avec succès”, async () => {
const gameId = 1;
const amount = 2;

const isPlayer2Turn = true;
await penduelInstance.updateStateFinished();
assert.equal(isPlayer2Turn, true, “No more guesses allowed”);
const isWordCorrect = await penduelInstance.getIsWordCorrect(“immuable”);
assert.equal(isWordCorrect, “Le mot proposé est correct”); AssertionError: expected false to equal ‘Le mot proposé est correct’