diff --git a/.github/workflows/tui-pty.yml b/.github/workflows/tui-pty.yml index de5ab0861f1b..4a11889bf786 100644 --- a/.github/workflows/tui-pty.yml +++ b/.github/workflows/tui-pty.yml @@ -38,4 +38,4 @@ jobs: install-bun: "false" - name: Run TUI PTY tests - run: timeout 120s node scripts/run-vitest.mjs run --config test/vitest/vitest.tui-pty.config.ts + run: timeout --kill-after=30s 120s node scripts/run-vitest.mjs run --config test/vitest/vitest.tui-pty.config.ts diff --git a/test/scripts/package-acceptance-workflow.test.ts b/test/scripts/package-acceptance-workflow.test.ts index e484af388bcd..3866aab4c97f 100644 --- a/test/scripts/package-acceptance-workflow.test.ts +++ b/test/scripts/package-acceptance-workflow.test.ts @@ -17,6 +17,7 @@ const CI_CHECK_TESTBOX_WORKFLOW = ".github/workflows/ci-check-testbox.yml"; const CRABBOX_HYDRATE_WORKFLOW = ".github/workflows/crabbox-hydrate.yml"; const CRABBOX_CONFIG = ".crabbox.yaml"; const SCHEDULED_LIVE_CHECKS_WORKFLOW = ".github/workflows/openclaw-scheduled-live-checks.yml"; +const TUI_PTY_WORKFLOW = ".github/workflows/tui-pty.yml"; const CI_HYDRATE_LIVE_AUTH_SCRIPT = "scripts/ci-hydrate-live-auth.sh"; const UPGRADE_SURVIVOR_RUN_SCRIPT = "scripts/e2e/lib/upgrade-survivor/run.sh"; @@ -1299,4 +1300,13 @@ describe("package artifact reuse", () => { ); expect(readFileSync(LIVE_E2E_WORKFLOW, "utf8")).toContain("live-cache attempt ${attempt}/2"); }); + + it("kills timed TUI PTY workflow runs after the grace period", () => { + const job = workflowJob(TUI_PTY_WORKFLOW, "tui-pty"); + const step = workflowStep(job, "Run TUI PTY tests"); + + expect(step.run).toBe( + "timeout --kill-after=30s 120s node scripts/run-vitest.mjs run --config test/vitest/vitest.tui-pty.config.ts", + ); + }); });