From 34cd49faa6de6c2016d17970ae892b4c83b0db7b Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 4 Apr 2026 02:08:14 +0100 Subject: [PATCH] perf: route browser and line extension tests --- src/scripts/test-projects.test.ts | 22 ++++++++++++++++++++++ test/vitest-scoped-config.test.ts | 23 ++++++++++++----------- vitest.channel-paths.mjs | 4 ++-- 3 files changed, 36 insertions(+), 13 deletions(-) diff --git a/src/scripts/test-projects.test.ts b/src/scripts/test-projects.test.ts index f7f9f147b8e..cba2b869b76 100644 --- a/src/scripts/test-projects.test.ts +++ b/src/scripts/test-projects.test.ts @@ -249,6 +249,28 @@ describe("test-projects args", () => { ]); }); + it("routes browser extension targets to the extension channel config", () => { + expect(buildVitestRunPlans(["extensions/browser/index.test.ts"])).toEqual([ + { + config: "vitest.extension-channels.config.ts", + forwardedArgs: [], + includePatterns: ["extensions/browser/index.test.ts"], + watchMode: false, + }, + ]); + }); + + it("routes line extension targets to the extension channel config", () => { + expect(buildVitestRunPlans(["extensions/line/src/send.test.ts"])).toEqual([ + { + config: "vitest.extension-channels.config.ts", + forwardedArgs: [], + includePatterns: ["extensions/line/src/send.test.ts"], + watchMode: false, + }, + ]); + }); + it("routes direct provider extension file targets to the extensions config", () => { expect(buildVitestRunPlans(["extensions/firecrawl/index.test.ts"])).toEqual([ { diff --git a/test/vitest-scoped-config.test.ts b/test/vitest-scoped-config.test.ts index 2b8748e7894..bc354e663f5 100644 --- a/test/vitest-scoped-config.test.ts +++ b/test/vitest-scoped-config.test.ts @@ -83,10 +83,7 @@ describe("scoped vitest configs", () => { }); it("keeps the core channel lane limited to non-extension roots", () => { - expect(defaultChannelsConfig.test?.include).toEqual([ - "src/browser/**/*.test.ts", - "src/line/**/*.test.ts", - ]); + expect(defaultChannelsConfig.test?.include).toEqual([]); }); it("loads channel include overrides from OPENCLAW_VITEST_INCLUDE_FILE", () => { @@ -123,13 +120,17 @@ describe("scoped vitest configs", () => { it("normalizes extension channel include patterns relative to the scoped dir", () => { expect(defaultExtensionChannelsConfig.test?.dir).toBe("extensions"); - expect(defaultExtensionChannelsConfig.test?.include).toEqual([ - "discord/**/*.test.ts", - "whatsapp/**/*.test.ts", - "slack/**/*.test.ts", - "signal/**/*.test.ts", - "imessage/**/*.test.ts", - ]); + expect(defaultExtensionChannelsConfig.test?.include).toEqual( + expect.arrayContaining([ + "browser/**/*.test.ts", + "discord/**/*.test.ts", + "line/**/*.test.ts", + "whatsapp/**/*.test.ts", + "slack/**/*.test.ts", + "signal/**/*.test.ts", + "imessage/**/*.test.ts", + ]), + ); }); it("normalizes extension include patterns relative to the scoped dir", () => { diff --git a/vitest.channel-paths.mjs b/vitest.channel-paths.mjs index 47ff73ed105..f9bd643f0f2 100644 --- a/vitest.channel-paths.mjs +++ b/vitest.channel-paths.mjs @@ -16,8 +16,8 @@ export const channelTestRoots = [ bundledPluginRoot("slack"), bundledPluginRoot("signal"), bundledPluginRoot("imessage"), - "src/browser", - "src/line", + bundledPluginRoot("browser"), + bundledPluginRoot("line"), ]; export const extensionChannelTestRoots = channelTestRoots.filter((root) =>