























@@ -2,15 +2,19 @@ import { beforeAll, describe, expect, it } from "vitest";
22import { spawnNodeEvalSync } from "../src/test-utils/node-process.js";
33import { createCommandsLightVitestConfig } from "./vitest/vitest.commands-light.config.ts";
44import { createPluginSdkLightVitestConfig } from "./vitest/vitest.plugin-sdk-light.config.ts";
5+import { createUnitFastFakeTimersVitestConfig } from "./vitest/vitest.unit-fast-fake-timers.config.ts";
56import {
67classifyUnitFastTestFileContent,
78collectBroadUnitFastTestCandidates,
89collectUnitFastTestCandidates,
910collectUnitFastTestFileAnalysis,
1011forcedUnitFastTestFiles,
1112getUnitFastTestFiles,
13+getUnitFastTimerTestFiles,
1214isUnitFastTestFile,
15+isUnitFastTimerTestFile,
1316resolveUnitFastTestIncludePattern,
17+resolveUnitFastTimerTestIncludePattern,
1418} from "./vitest/vitest.unit-fast-paths.mjs";
1519import { createUnitFastVitestConfig } from "./vitest/vitest.unit-fast.config.ts";
1620@@ -53,6 +57,7 @@ describe("unit-fast vitest lane", () => {
5357let configProbeResult: ReturnType<typeof spawnNodeEvalSync>;
5458let unitFastConfig: ReturnType<typeof createUnitFastVitestConfig>;
5559let unitFastTestFiles: ReturnType<typeof getUnitFastTestFiles>;
60+let unitFastTimerTestFiles: ReturnType<typeof getUnitFastTimerTestFiles>;
5661let unitFastAnalysis: ReturnType<typeof collectUnitFastTestFileAnalysis>;
5762let broadCandidates: ReturnType<typeof collectBroadUnitFastTestCandidates>;
5863let broadAnalysis: ReturnType<typeof collectUnitFastTestFileAnalysis>;
@@ -77,6 +82,7 @@ describe("unit-fast vitest lane", () => {
7782});
7883unitFastConfig = createUnitFastVitestConfig({});
7984unitFastTestFiles = getUnitFastTestFiles();
85+unitFastTimerTestFiles = getUnitFastTimerTestFiles();
8086unitFastAnalysis = collectUnitFastTestFileAnalysis();
8187currentCandidates = collectUnitFastTestCandidates();
8288broadCandidates = collectBroadUnitFastTestCandidates();
@@ -106,7 +112,6 @@ describe("unit-fast vitest lane", () => {
106112expect(testConfig.include).toContain("src/acp/control-plane/runtime-cache.test.ts");
107113expect(testConfig.include).toContain("src/acp/runtime/registry.test.ts");
108114expect(testConfig.include).toContain("src/commands/status-overview-values.test.ts");
109-expect(testConfig.include).toContain("src/entry.respawn.test.ts");
110115expect(testConfig.include).toContain("src/entry.version-fast-path.test.ts");
111116expect(testConfig.include).toContain("src/flows/doctor-startup-channel-maintenance.test.ts");
112117expect(testConfig.include).toContain("src/crestodian/rescue-policy.test.ts");
@@ -127,7 +132,6 @@ describe("unit-fast vitest lane", () => {
127132expect(testConfig.include).toContain("src/security/audit-gateway-tools-http.test.ts");
128133expect(testConfig.include).toContain("src/security/audit-plugin-readonly-scope.test.ts");
129134expect(testConfig.include).toContain("src/security/audit-loopback-logging.test.ts");
130-expect(testConfig.include).toContain("src/security/audit-sandbox-browser.test.ts");
131135expect(testConfig.include).toContain("src/ui-app-settings.agents-files-refresh.test.ts");
132136expect(testConfig.include).toContain("src/video-generation/provider-registry.test.ts");
133137expect(testConfig.include).toContain("src/plugin-sdk/provider-entry.test.ts");
@@ -187,6 +191,26 @@ describe("unit-fast vitest lane", () => {
187191expect(unroutedForcedFiles).toStrictEqual([]);
188192});
189193194+it("routes fake-timer unit-fast tests through the serial fake-timer lane", () => {
195+const fakeTimerFiles = unitFastAnalysis
196+.filter((entry) => entry.unitFast && entry.reasons.includes("fake-timers"))
197+.map((entry) => entry.file);
198+expect(unitFastTimerTestFiles.length).toBeGreaterThan(0);
199+expect(unitFastTimerTestFiles).toEqual(fakeTimerFiles);
200+for (const file of unitFastTimerTestFiles) {
201+expect(isUnitFastTimerTestFile(file)).toBe(true);
202+expect(resolveUnitFastTestIncludePattern(file)).toBeNull();
203+expect(resolveUnitFastTimerTestIncludePattern(file)).toBe(file);
204+}
205+206+const fastConfig = requireTestConfig(unitFastConfig);
207+const timerConfig = requireTestConfig(createUnitFastFakeTimersVitestConfig({}));
208+expect(fastConfig.include).not.toEqual(expect.arrayContaining(unitFastTimerTestFiles));
209+expect(timerConfig.include).toEqual(unitFastTimerTestFiles);
210+expect(timerConfig.fileParallelism).toBe(false);
211+expect(timerConfig.maxWorkers).toBe(1);
212+});
213+190214it("keeps broad audit candidates separate from automatically routed unit-fast tests", () => {
191215expect(currentCandidates.length).toBeGreaterThanOrEqual(unitFastTestFiles.length);
192216expect(broadCandidates.length).toBeGreaterThan(currentCandidates.length);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。