From 3484d25b5c0c747431f06c83a43cbfa58887daef Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Fri, 29 May 2026 13:00:39 +0100 Subject: [PATCH] =?UTF-8?q?fix(2):=20cryptpad=20roundtrip=20=E2=80=94=20mo?= =?UTF-8?q?re=20patient=20pad-creation=20wait=20(240s=20+=20reload)=20for?= =?UTF-8?q?=20cold=20fresh=20deploy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full-suite custom-tier run showed the pad #/2/pad/edit fragment didn't appear within 80s on a fresh cold deploy (passed on the warm probe). Bump _open_pad hash-wait to ~240s + one mid-way reload. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../playwright/test_pad_content_roundtrip.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/cryptpad/playwright/test_pad_content_roundtrip.py b/tests/cryptpad/playwright/test_pad_content_roundtrip.py index d5bf00b..099a3ed 100644 --- a/tests/cryptpad/playwright/test_pad_content_roundtrip.py +++ b/tests/cryptpad/playwright/test_pad_content_roundtrip.py @@ -43,11 +43,23 @@ def _open_pad(ctx, url): deadline_seconds=150, ) pad_url = url - for _ in range(40): # up to ~80s for the pad to be created/loaded (cold-cache LESS compile) + # Up to ~240s for CryptPad to create/load the fragment-keyed pad. A FRESH per-run deploy is + # cold (server datastore + LESS compile + first-ever websocket), and `/` → 200 (the recipe + # health gate) can be reached before CryptPad's API is ready to mint a pad — so be patient and, + # if no pad after ~80s, reload once to unstick a load that stalled before pad creation. + for i in range(120): page.wait_for_timeout(2000) if "#/2/pad/edit/" in page.url: pad_url = page.url break + if i == 40: + try: + harness_browser.goto_with_retry( + page, url, accept_statuses=(200,), goto_timeout_ms=60_000, + wait_until="load", deadline_seconds=120, + ) + except Exception: # noqa: BLE001 — best-effort unstick + pass return page, pad_url