From 2f1d36413e5da242fd37d4dff6cd809442023c6b Mon Sep 17 00:00:00 2001 From: Pierre MARTIN Date: Mon, 9 Nov 2026 14:16:48 +0100 Subject: [PATCH] =?UTF-8?q?Test=20navigateur=20:=20le=20coup=20jou=C3=A9?= =?UTF-8?q?=20a=2010=20s=20pour=20arriver=20dans=20IndexedDB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit L'application enregistre sans attendre ; sur le disque dur de la machine de développement, l'écriture de Firefox peut suivre de loin. En cas d'échec, le message dit ce que montre l'écran. Co-Authored-By: Claude Opus 5.5 --- tests/browser/play.mjs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/browser/play.mjs b/tests/browser/play.mjs index 954307e..3b9d3c7 100644 --- a/tests/browser/play.mjs +++ b/tests/browser/play.mjs @@ -1223,10 +1223,19 @@ for (let actions = 0; ; actions++) { } else { await (await touchTarget("confirm", "Jouer ce coup", 2, confirms % 2)).click(); } - await waitForPlayer(); - const played = await savedJournal(); - check(countMoves(played, "player") === countMoves(journal, "player") + 1, - "le coup joué n'est pas dans le journal"); + const next = await waitForPlayer(); + // L'application enregistre sans attendre ; sur un disque lent, + // l'écriture d'IndexedDB peut suivre de loin : on lui laisse 10 s. + const expected = countMoves(journal, "player") + 1; + let played = await savedJournal(); + for (let i = 0; i < 100 && countMoves(played, "player") < expected; i++) { + await sleep(100); + played = await savedJournal(); + } + check(countMoves(played, "player") === expected, + `le coup joué n'est pas dans le journal : ${countMoves(played, "player")} coups ` + + `enregistrés, ${expected} attendus ; à l'écran : ${next}, ` + + `« ${await page.textContent("#info")} »`); halfMoves = 0; touched = false; } else {