fix(auth): survive ERR_ABORTED in login retry — recreate context, 5 attempts with backoff (#16)

QA: APPROVE (qa-reviews/peptide-e2e/). CEO program greenlight 2026-06-12.

Agent-Session: cto-e2e-merge-20260612
This commit was merged in pull request #16.
This commit is contained in:
peptiderepo
2026-06-12 22:02:51 +07:00
committed by GitHub
parent a05d90405d
commit d590dc9dee
3 changed files with 69 additions and 11 deletions

View File

@@ -2,6 +2,26 @@
All notable changes to the peptide-e2e smoke suite will be documented here.
## [1.3.0] - 2026-06-12
### Fixed
- **Auth setup survives `ERR_ABORTED` on wp-login.php** (`global.setup.ts`).
When Hostinger's LiteSpeed throttles a GitHub runner IP, `page.goto` can
throw `net::ERR_ABORTED` rather than a `TimeoutError`. Playwright marks the
browser context closed internally on abort, so the existing
`context.close()` call in the catch block threw
`"browserContext.close: Target page, context or browser has been closed"`,
which propagated out of catch and killed setup before the remaining retries
ran. Two production deploys were blocked by this flake on 2026-06-12.
Fix: introduced `safeClose()` helper that swallows the already-closed
error, so an aborted context never terminates the retry loop. Max attempts
raised from 3 → 5; backoff is now exponential (5 s / 10 s / 20 s / 40 s)
instead of a flat 15 s, giving the throttle window more time to clear.
Worst-case timing: 5 × 90 s navigation + 75 s backoff = ~525 s, well under
the 900 s (15 min) job timeout. Final-failure message explicitly names the
LiteSpeed throttle hypothesis so future CI logs self-diagnose.
## [1.2.0] - 2026-06-12
### Added