fix(embedded-e2e): harden Playwright helpers against werkzeug transients
Add defensive retry/timeout wrappers for the dev-server flake patterns
observed in CI (socket hang up, ERR_EMPTY_RESPONSE, ECONNRESET, single-
threaded werkzeug starvation during SQL Lab queries).
- helpers/api/requests.ts: withTransientRetry wrapper retries
page.request calls (CSRF + GET/POST/PUT/PATCH/DELETE) up to 3 times on
transport-layer drops with 250ms linear backoff.
- helpers/navigation.ts (new): gotoWithRetry retries page.goto on
ERR_EMPTY_RESPONSE / ERR_CONNECTION_RESET / socket hang up.
- pages/{Sql,DashboardList,ChartList,DatasetList,Dashboard,
ChartCreation,CreateDataset}Page.ts: all goto() entry points now use
gotoWithRetry.
- pages/SqlLabPage.ts: bump waitForPageLoad, executeQuery
(waitForPost + .ant-steps visible) and waitForQueryResults timeouts
from QUERY_EXECUTION (15s) to SLOW_TEST (60s); werkzeug round-trips
routinely exceed 15s when cross-project workers contend for the
single Python thread.
- components/core/EditableTabs.ts: addTab prefers the
.ant-tabs-nav-operations dropdown trigger to dodge overflow flakes.
- components/modals/EditDatasetModal.ts: add waitForTextControlDebounce
(350ms) after fillName / fillColumnDateFormat to settle the controlled
input before save.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> J
Joe Li committed
0a490a863c36ec8f40cf597becc318107634416d
Parent: 3522a37