mirror of
https://github.com/moltbot/moltbot.git
synced 2026-04-26 07:57:40 +00:00
perf: split infra, tooling, and provider test lanes
This commit is contained in:
@@ -43,7 +43,16 @@ describe("scripts/test-extension.mjs", () => {
|
||||
expect(plan.hasTests).toBe(true);
|
||||
});
|
||||
|
||||
it("resolves provider extensions onto the extensions vitest config", () => {
|
||||
it("resolves provider extensions onto the provider vitest config", () => {
|
||||
const plan = resolveExtensionTestPlan({ targetArg: "openai", cwd: process.cwd() });
|
||||
|
||||
expect(plan.extensionId).toBe("openai");
|
||||
expect(plan.config).toBe("vitest.extension-providers.config.ts");
|
||||
expect(plan.roots).toContain(bundledPluginRoot("openai"));
|
||||
expect(plan.hasTests).toBe(true);
|
||||
});
|
||||
|
||||
it("keeps non-provider extensions on the shared extensions vitest config", () => {
|
||||
const plan = resolveExtensionTestPlan({ targetArg: "firecrawl", cwd: process.cwd() });
|
||||
|
||||
expect(plan.extensionId).toBe("firecrawl");
|
||||
@@ -111,10 +120,10 @@ describe("scripts/test-extension.mjs", () => {
|
||||
it("batches extensions into config-specific vitest invocations", () => {
|
||||
const batch = resolveExtensionBatchPlan({
|
||||
cwd: process.cwd(),
|
||||
extensionIds: ["slack", "firecrawl", "line"],
|
||||
extensionIds: ["slack", "firecrawl", "line", "openai"],
|
||||
});
|
||||
|
||||
expect(batch.extensionIds).toEqual(["firecrawl", "line", "slack"]);
|
||||
expect(batch.extensionIds).toEqual(["firecrawl", "line", "openai", "slack"]);
|
||||
expect(batch.planGroups).toEqual([
|
||||
{
|
||||
config: "vitest.channels.config.ts",
|
||||
@@ -122,6 +131,12 @@ describe("scripts/test-extension.mjs", () => {
|
||||
roots: [bundledPluginRoot("slack"), bundledPluginRoot("line")],
|
||||
testFileCount: expect.any(Number),
|
||||
},
|
||||
{
|
||||
config: "vitest.extension-providers.config.ts",
|
||||
extensionIds: ["openai"],
|
||||
roots: [bundledPluginRoot("openai")],
|
||||
testFileCount: expect.any(Number),
|
||||
},
|
||||
{
|
||||
config: "vitest.extensions.config.ts",
|
||||
extensionIds: ["firecrawl"],
|
||||
|
||||
@@ -8,9 +8,12 @@ import { createAutoReplyVitestConfig } from "../vitest.auto-reply.config.ts";
|
||||
import { createChannelsVitestConfig } from "../vitest.channels.config.ts";
|
||||
import { createCommandsVitestConfig } from "../vitest.commands.config.ts";
|
||||
import { createExtensionChannelsVitestConfig } from "../vitest.extension-channels.config.ts";
|
||||
import { createExtensionProvidersVitestConfig } from "../vitest.extension-providers.config.ts";
|
||||
import { createExtensionsVitestConfig } from "../vitest.extensions.config.ts";
|
||||
import { createGatewayVitestConfig } from "../vitest.gateway.config.ts";
|
||||
import { createInfraVitestConfig } from "../vitest.infra.config.ts";
|
||||
import { createScopedVitestConfig, resolveVitestIsolation } from "../vitest.scoped-config.ts";
|
||||
import { createToolingVitestConfig } from "../vitest.tooling.config.ts";
|
||||
import { createUiVitestConfig } from "../vitest.ui.config.ts";
|
||||
import { BUNDLED_PLUGIN_TEST_GLOB, bundledPluginFile } from "./helpers/bundled-plugin-paths.js";
|
||||
|
||||
@@ -71,10 +74,13 @@ describe("scoped vitest configs", () => {
|
||||
const defaultAcpConfig = createAcpVitestConfig({});
|
||||
const defaultExtensionsConfig = createExtensionsVitestConfig({});
|
||||
const defaultExtensionChannelsConfig = createExtensionChannelsVitestConfig({});
|
||||
const defaultExtensionProvidersConfig = createExtensionProvidersVitestConfig({});
|
||||
const defaultGatewayConfig = createGatewayVitestConfig({});
|
||||
const defaultInfraConfig = createInfraVitestConfig({});
|
||||
const defaultCommandsConfig = createCommandsVitestConfig({});
|
||||
const defaultAutoReplyConfig = createAutoReplyVitestConfig({});
|
||||
const defaultAgentsConfig = createAgentsVitestConfig({});
|
||||
const defaultToolingConfig = createToolingVitestConfig({});
|
||||
const defaultUiConfig = createUiVitestConfig({});
|
||||
|
||||
it("defaults channel tests to non-isolated mode", () => {
|
||||
@@ -138,6 +144,13 @@ describe("scoped vitest configs", () => {
|
||||
expect(defaultExtensionsConfig.test?.include).toEqual(["**/*.test.ts"]);
|
||||
});
|
||||
|
||||
it("normalizes extension provider include patterns relative to the scoped dir", () => {
|
||||
expect(defaultExtensionProvidersConfig.test?.dir).toBe("extensions");
|
||||
expect(defaultExtensionProvidersConfig.test?.include).toEqual(
|
||||
expect.arrayContaining(["openai/**/*.test.ts", "xai/**/*.test.ts", "google/**/*.test.ts"]),
|
||||
);
|
||||
});
|
||||
|
||||
it("keeps telegram plugin tests in extensions while excluding channel-surface plugin roots", () => {
|
||||
const extensionExcludes = defaultExtensionsConfig.test?.exclude ?? [];
|
||||
expect(
|
||||
@@ -155,11 +168,35 @@ describe("scoped vitest configs", () => {
|
||||
expect(defaultExtensionsConfig.test?.setupFiles).toEqual(["test/setup.extensions.ts"]);
|
||||
});
|
||||
|
||||
it("keeps provider plugin tests out of the shared extensions lane", () => {
|
||||
const extensionExcludes = defaultExtensionsConfig.test?.exclude ?? [];
|
||||
expect(
|
||||
extensionExcludes.some((pattern) =>
|
||||
path.matchesGlob("openai/openai-codex-provider.test.ts", pattern),
|
||||
),
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it("normalizes gateway include patterns relative to the scoped dir", () => {
|
||||
expect(defaultGatewayConfig.test?.dir).toBe("src/gateway");
|
||||
expect(defaultGatewayConfig.test?.include).toEqual(["**/*.test.ts"]);
|
||||
});
|
||||
|
||||
it("normalizes infra include patterns relative to the scoped dir", () => {
|
||||
expect(defaultInfraConfig.test?.dir).toBe("src");
|
||||
expect(defaultInfraConfig.test?.include).toEqual(["infra/**/*.test.ts"]);
|
||||
});
|
||||
|
||||
it("keeps tooling tests in their own lane", () => {
|
||||
expect(defaultToolingConfig.test?.include).toEqual(
|
||||
expect.arrayContaining([
|
||||
"test/**/*.test.ts",
|
||||
"src/scripts/**/*.test.ts",
|
||||
"src/config/doc-baseline.integration.test.ts",
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
it("normalizes acp include patterns relative to the scoped dir", () => {
|
||||
expect(defaultAcpConfig.test?.dir).toBe("src/acp");
|
||||
expect(defaultAcpConfig.test?.include).toEqual(["**/*.test.ts"]);
|
||||
|
||||
Reference in New Issue
Block a user