From 60c1db98bb73102872b269997268c54530184d7b Mon Sep 17 00:00:00 2001 From: archipelago Date: Thu, 20 Aug 2026 02:06:14 -0400 Subject: [PATCH] fix(ui-tests): raise the vitest timeout so a busy box cannot fail the gate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four unrelated tests failed the release gate at once today — every one of them "Test timed out in 5000ms", none an assertion. Wall times were 6.3s, 16.5s, 5.5s and 36.2s for tests that normally finish in milliseconds (useModalKeyboard's takes 349ms on an idle box), and the whole suite took 405s against its usual ~70s. The cause was CPU starvation from a concurrent cargo build, not anything in the code. The 5s default says nothing about these tests and everything about the machine: this box also runs a live node, so a gate run can always collide with a build or container churn. 20s survives that while still bounding a genuine hang. Co-Authored-By: Claude Opus 5 (1M context) --- neode-ui/vitest.config.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/neode-ui/vitest.config.ts b/neode-ui/vitest.config.ts index 96d9facc..b70102fc 100644 --- a/neode-ui/vitest.config.ts +++ b/neode-ui/vitest.config.ts @@ -12,6 +12,16 @@ export default defineConfig({ test: { environment: 'jsdom', globals: true, + // Vitest's 5s default is not a statement about these tests — the whole + // 1000-test suite runs in ~70s on an idle box. It is a statement about + // the machine. This one also runs a live node, so a release gate can + // collide with a cargo build or a container churn, and starved workers + // blow 5s on tests that normally take milliseconds: on 2026-08-20 four + // unrelated tests timed out at once (one after 36s of wall clock) purely + // from CPU contention, failing the gate with nothing actually broken. + // 20s keeps real hangs bounded while surviving a busy box. + testTimeout: 20_000, + hookTimeout: 20_000, setupFiles: ['./vitest.setup.ts'], root: '.', passWithNoTests: true,