


























@@ -5,6 +5,7 @@ import {
55resolveDirectNodeVitestArgs,
66resolveImplicitVitestArgs,
77resolveMissingExplicitTestFiles,
8+resolveRunVitestSpawnEnv,
89resolveVitestNodeArgs,
910resolveVitestNoOutputTimeoutMs,
1011resolveVitestSpawnParams,
@@ -61,10 +62,7 @@ describe("scripts/run-vitest", () => {
61626263expect(
6364resolveMissingExplicitTestFiles(
64-[
65-"src/agents/bash-tools.test.ts",
66-"test/agents/bash-tools.exec.background-abort.test.ts",
67-],
65+["src/agents/bash-tools.test.ts", "test/agents/bash-tools.exec.background-abort.test.ts"],
6866"/repo",
6967fsImpl,
7068),
@@ -168,6 +166,84 @@ describe("scripts/run-vitest", () => {
168166).toBeNull();
169167});
170168169+it("defaults direct non-watch runs to the stall watchdog", () => {
170+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["run"])).toEqual({
171+PATH: "/usr/bin",
172+OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS: "300000",
173+});
174+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["run", "-t", "watch"])).toEqual({
175+PATH: "/usr/bin",
176+OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS: "300000",
177+});
178+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["--watch=false"])).toEqual({
179+PATH: "/usr/bin",
180+OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS: "300000",
181+});
182+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["--watch", "false"])).toEqual({
183+PATH: "/usr/bin",
184+OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS: "300000",
185+});
186+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["--no-watch"])).toEqual({
187+PATH: "/usr/bin",
188+OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS: "300000",
189+});
190+expect(resolveRunVitestSpawnEnv({ CI: "true", PATH: "/usr/bin" }, ["src/foo.test.ts"])).toEqual(
191+{
192+CI: "true",
193+PATH: "/usr/bin",
194+OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS: "300000",
195+},
196+);
197+expect(
198+resolveRunVitestSpawnEnv({ OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS: "0", PATH: "/usr/bin" }, [
199+"run",
200+]),
201+).toEqual({
202+OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS: "0",
203+PATH: "/usr/bin",
204+});
205+});
206+207+it("does not default implicit interactive runs to the stall watchdog", () => {
208+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["src/foo.test.ts"])).toEqual({
209+PATH: "/usr/bin",
210+});
211+expect(
212+resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, [
213+"--config",
214+"test/vitest/vitest.unit.config.ts",
215+"-t",
216+"watch",
217+]),
218+).toEqual({
219+PATH: "/usr/bin",
220+});
221+});
222+223+it("does not default explicit watch runs to the stall watchdog", () => {
224+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["--watch"])).toEqual({
225+PATH: "/usr/bin",
226+});
227+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["run", "--watch"])).toEqual({
228+PATH: "/usr/bin",
229+});
230+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["-w"])).toEqual({
231+PATH: "/usr/bin",
232+});
233+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["--watch=0"])).toEqual({
234+PATH: "/usr/bin",
235+});
236+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["--run=false"])).toEqual({
237+PATH: "/usr/bin",
238+});
239+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["watch"])).toEqual({
240+PATH: "/usr/bin",
241+});
242+expect(resolveRunVitestSpawnEnv({ PATH: "/usr/bin" }, ["dev"])).toEqual({
243+PATH: "/usr/bin",
244+});
245+});
246+171247it("spawns vitest in a detached process group on Unix hosts", () => {
172248expect(resolveVitestSpawnParams({ PATH: "/usr/bin" }, "darwin")).toEqual({
173249env: { PATH: "/usr/bin" },
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。