perf: split more scoped vitest lanes

This commit is contained in:
Peter Steinberger
2026-04-04 05:25:04 +01:00
parent 64b971b2b0
commit c7cb43cac9
37 changed files with 1107 additions and 49 deletions

View File

@@ -43,6 +43,33 @@ describe("scripts/test-extension.mjs", () => {
expect(plan.hasTests).toBe(true);
});
it("resolves bluebubbles onto the bluebubbles vitest config", () => {
const plan = resolveExtensionTestPlan({ targetArg: "bluebubbles", cwd: process.cwd() });
expect(plan.extensionId).toBe("bluebubbles");
expect(plan.config).toBe("vitest.extension-bluebubbles.config.ts");
expect(plan.roots).toContain(bundledPluginRoot("bluebubbles"));
expect(plan.hasTests).toBe(true);
});
it("resolves acpx onto the acpx vitest config", () => {
const plan = resolveExtensionTestPlan({ targetArg: "acpx", cwd: process.cwd() });
expect(plan.extensionId).toBe("acpx");
expect(plan.config).toBe("vitest.extension-acpx.config.ts");
expect(plan.roots).toContain(bundledPluginRoot("acpx"));
expect(plan.hasTests).toBe(true);
});
it("resolves diffs onto the diffs vitest config", () => {
const plan = resolveExtensionTestPlan({ targetArg: "diffs", cwd: process.cwd() });
expect(plan.extensionId).toBe("diffs");
expect(plan.config).toBe("vitest.extension-diffs.config.ts");
expect(plan.roots).toContain(bundledPluginRoot("diffs"));
expect(plan.hasTests).toBe(true);
});
it("resolves provider extensions onto the provider vitest config", () => {
const plan = resolveExtensionTestPlan({ targetArg: "openai", cwd: process.cwd() });
@@ -52,6 +79,33 @@ describe("scripts/test-extension.mjs", () => {
expect(plan.hasTests).toBe(true);
});
it("resolves matrix onto the matrix vitest config", () => {
const plan = resolveExtensionTestPlan({ targetArg: "matrix", cwd: process.cwd() });
expect(plan.extensionId).toBe("matrix");
expect(plan.config).toBe("vitest.extension-matrix.config.ts");
expect(plan.roots).toContain(bundledPluginRoot("matrix"));
expect(plan.hasTests).toBe(true);
});
it("resolves telegram onto the telegram vitest config", () => {
const plan = resolveExtensionTestPlan({ targetArg: "telegram", cwd: process.cwd() });
expect(plan.extensionId).toBe("telegram");
expect(plan.config).toBe("vitest.extension-telegram.config.ts");
expect(plan.roots).toContain(bundledPluginRoot("telegram"));
expect(plan.hasTests).toBe(true);
});
it("resolves memory extensions onto the memory vitest config", () => {
const plan = resolveExtensionTestPlan({ targetArg: "memory-core", cwd: process.cwd() });
expect(plan.extensionId).toBe("memory-core");
expect(plan.config).toBe("vitest.extension-memory.config.ts");
expect(plan.roots).toContain(bundledPluginRoot("memory-core"));
expect(plan.hasTests).toBe(true);
});
it("keeps non-provider extensions on the shared extensions vitest config", () => {
const plan = resolveExtensionTestPlan({ targetArg: "firecrawl", cwd: process.cwd() });
@@ -66,7 +120,7 @@ describe("scripts/test-extension.mjs", () => {
expect(plan.roots).toContain(bundledPluginRoot("line"));
expect(plan.roots).not.toContain("src/line");
expect(plan.config).toBe("vitest.channels.config.ts");
expect(plan.config).toBe("vitest.extension-channels.config.ts");
expect(plan.hasTests).toBe(true);
});
@@ -120,23 +174,81 @@ describe("scripts/test-extension.mjs", () => {
it("batches extensions into config-specific vitest invocations", () => {
const batch = resolveExtensionBatchPlan({
cwd: process.cwd(),
extensionIds: ["slack", "firecrawl", "line", "openai"],
extensionIds: [
"slack",
"firecrawl",
"line",
"openai",
"matrix",
"telegram",
"memory-core",
"bluebubbles",
"acpx",
"diffs",
],
});
expect(batch.extensionIds).toEqual(["firecrawl", "line", "openai", "slack"]);
expect(batch.extensionIds).toEqual([
"acpx",
"bluebubbles",
"diffs",
"firecrawl",
"line",
"matrix",
"memory-core",
"openai",
"slack",
"telegram",
]);
expect(batch.planGroups).toEqual([
{
config: "vitest.channels.config.ts",
config: "vitest.extension-acpx.config.ts",
extensionIds: ["acpx"],
roots: [bundledPluginRoot("acpx")],
testFileCount: expect.any(Number),
},
{
config: "vitest.extension-bluebubbles.config.ts",
extensionIds: ["bluebubbles"],
roots: [bundledPluginRoot("bluebubbles")],
testFileCount: expect.any(Number),
},
{
config: "vitest.extension-channels.config.ts",
extensionIds: ["line", "slack"],
roots: [bundledPluginRoot("slack"), bundledPluginRoot("line")],
testFileCount: expect.any(Number),
},
{
config: "vitest.extension-diffs.config.ts",
extensionIds: ["diffs"],
roots: [bundledPluginRoot("diffs")],
testFileCount: expect.any(Number),
},
{
config: "vitest.extension-matrix.config.ts",
extensionIds: ["matrix"],
roots: [bundledPluginRoot("matrix")],
testFileCount: expect.any(Number),
},
{
config: "vitest.extension-memory.config.ts",
extensionIds: ["memory-core"],
roots: [bundledPluginRoot("memory-core")],
testFileCount: expect.any(Number),
},
{
config: "vitest.extension-providers.config.ts",
extensionIds: ["openai"],
roots: [bundledPluginRoot("openai")],
testFileCount: expect.any(Number),
},
{
config: "vitest.extension-telegram.config.ts",
extensionIds: ["telegram"],
roots: [bundledPluginRoot("telegram")],
testFileCount: expect.any(Number),
},
{
config: "vitest.extensions.config.ts",
extensionIds: ["firecrawl"],