test: isolate stateful unit-fast tests (#108334)

This commit is contained in:
Peter Steinberger
2026-07-15 07:14:35 -07:00
committed by GitHub
parent dd149f01ba
commit a748634aa9
13 changed files with 242 additions and 31 deletions

View File

@@ -312,6 +312,7 @@ describe("scripts/lib/ci-node-test-plan.mjs", () => {
{
configs: [
"test/vitest/vitest.unit-fast.config.ts",
"test/vitest/vitest.unit-fast-isolated.config.ts",
"test/vitest/vitest.unit-fast-fake-timers.config.ts",
],
requiresDist: false,

View File

@@ -2707,12 +2707,18 @@ describe("scripts/test-projects changed-target routing", () => {
it("chunks the broad shell helper tooling shard after isolated targets", () => {
const plans = buildVitestRunPlans(["test/scripts"], process.cwd());
expect(plans.slice(0, 3)).toEqual([
expect(plans.slice(0, 4)).toEqual([
expect.objectContaining({
config: "test/vitest/vitest.unit-fast.config.ts",
includePatterns: expect.arrayContaining(["test/scripts/arg-utils.test.ts"]),
watchMode: false,
}),
{
config: "test/vitest/vitest.unit-fast-isolated.config.ts",
forwardedArgs: [],
includePatterns: ["test/scripts/android-version.test.ts"],
watchMode: false,
},
{
config: "test/vitest/vitest.tooling-docker.config.ts",
forwardedArgs: [],
@@ -2732,7 +2738,7 @@ describe("scripts/test-projects changed-target routing", () => {
]);
const e2ePlans = plans.filter((plan) => plan.config === "test/vitest/vitest.e2e.config.ts");
const toolingPlans = plans
.slice(3)
.slice(4)
.filter((plan) => plan.config === "test/vitest/vitest.tooling.config.ts");
const toolingTargets = toolingPlans.flatMap((plan) => plan.includePatterns ?? []);
@@ -2818,6 +2824,10 @@ describe("scripts/test-projects changed-target routing", () => {
config: "test/vitest/vitest.unit-fast.config.ts",
includePatterns: expect.arrayContaining(["src/plugin-sdk/access-groups.test.ts"]),
}),
expect.objectContaining({
config: "test/vitest/vitest.unit-fast-isolated.config.ts",
includePatterns: ["src/plugin-sdk/memory-host-events.test.ts"],
}),
expect.objectContaining({
config: "test/vitest/vitest.plugin-sdk-light.config.ts",
includePatterns: expect.arrayContaining(["src/plugin-sdk/acp-runtime.test.ts"]),
@@ -2855,12 +2865,18 @@ describe("scripts/test-projects changed-target routing", () => {
it("chunks broad shell helper globs after isolated targets", () => {
const plans = buildVitestRunPlans(["test/scripts/*.test.ts"], process.cwd());
expect(plans.slice(0, 3)).toEqual([
expect(plans.slice(0, 4)).toEqual([
expect.objectContaining({
config: "test/vitest/vitest.unit-fast.config.ts",
includePatterns: expect.arrayContaining(["test/scripts/arg-utils.test.ts"]),
watchMode: false,
}),
{
config: "test/vitest/vitest.unit-fast-isolated.config.ts",
forwardedArgs: [],
includePatterns: ["test/scripts/android-version.test.ts"],
watchMode: false,
},
{
config: "test/vitest/vitest.tooling-docker.config.ts",
forwardedArgs: [],
@@ -2880,7 +2896,7 @@ describe("scripts/test-projects changed-target routing", () => {
]);
const e2ePlans = plans.filter((plan) => plan.config === "test/vitest/vitest.e2e.config.ts");
const toolingPlans = plans
.slice(3)
.slice(4)
.filter((plan) => plan.config === "test/vitest/vitest.tooling.config.ts");
const toolingTargets = toolingPlans.flatMap((plan) => plan.includePatterns ?? []);
@@ -3747,6 +3763,22 @@ describe("scripts/test-projects changed-target routing", () => {
]);
});
it("routes forced stateful unit-fast tests to the isolated lane", () => {
const plans = buildVitestRunPlans(
["src/system-agent/assistant.configured.test.ts"],
process.cwd(),
);
expect(plans).toEqual([
{
config: "test/vitest/vitest.unit-fast-isolated.config.ts",
forwardedArgs: [],
includePatterns: ["src/system-agent/assistant.configured.test.ts"],
watchMode: false,
},
]);
});
it("routes fake-timer unit-fast tests to the serial fake-timer lane", () => {
const plans = buildVitestRunPlans(["src/acp/control-plane/manager.test.ts"], process.cwd());
@@ -4457,6 +4489,7 @@ describe("scripts/test-projects full-suite sharding", () => {
}
expect(leafShardPlans.map((plan) => plan.config)).toEqual([
...unitFastPlans.map(() => unitFastConfig),
"test/vitest/vitest.unit-fast-isolated.config.ts",
"test/vitest/vitest.unit-fast-fake-timers.config.ts",
"test/vitest/vitest.unit-src.config.ts",
"test/vitest/vitest.unit-security.config.ts",
@@ -4573,7 +4606,7 @@ describe("scripts/test-projects full-suite sharding", () => {
expect(unitFastPlans.every((plan) => plan.forwardedArgs.length <= 70)).toBe(true);
expect(unitFastTargets.length).toBeGreaterThan(1_000);
expect(new Set(unitFastTargets).size).toBe(unitFastTargets.length);
expect(unitFastTargets).toContain("extensions/canvas/src/host/server.state-dir.test.ts");
expect(unitFastTargets).not.toContain("extensions/canvas/src/host/server.state-dir.test.ts");
expect(unitFastTargets).not.toContain("src/utils.test.ts");
const toolingTargets = toolingPlans.flatMap((plan) => plan.forwardedArgs);
expect(toolingPlans.length).toBeGreaterThan(1);