mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-16 15:41:44 +00:00
* test: fix changed-run routing, dedupe gateway package lanes, repair force-rerun triggers - route extensions/active-memory changed runs to their dedicated lane; add a generic guard that every catch-all-excluded extension root resolves to a dedicated config so future split lanes cannot silently skip changed tests - exclude packages/gateway-client and packages/gateway-protocol from the unit lane; explicit targets now route to the gateway-client lane (was double-run) - generate forceRerunTriggers from the test/vitest directory and resolve all entries absolute: Vitest matches triggers against absolute changed-file paths, so the old hand-maintained relative list never matched at all - replace deprecated envFile:false with envDir:false (Vitest 4.1.9 warning) - give scripts/test-live.mjs stall detection teeth: kill the process group and exit non-zero when OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS elapses quietly - consolidate the live-docker shell target list into changed-lanes.mjs so the lane regex and check targets cannot drift; cover subagent-announce edits - delete orphans: vitest.extension-clickclack.config.ts, vitest.full-core-unit.config.ts, scripts/test-docker-all.sh, scripts/test-live-acp-spawn-defaults-docker.sh Closes #104231 * test: keep envDir literal so sharedVitestConfig satisfies Vite UserConfig Vite 8 types envDir as string | false; the bare object literal widened false to boolean and broke check:test-types at the defineConfig call sites.
81 lines
3.5 KiB
TypeScript
81 lines
3.5 KiB
TypeScript
// Vitest extensions config wires the extensions test shard.
|
|
import { BUNDLED_PLUGIN_TEST_GLOB } from "./vitest.bundled-plugin-paths.ts";
|
|
import { extensionExcludedChannelTestGlobs } from "./vitest.channel-paths.mjs";
|
|
import { acpxExtensionTestRoots } from "./vitest.extension-acpx-paths.mjs";
|
|
import { activeMemoryExtensionTestRoots } from "./vitest.extension-active-memory-paths.mjs";
|
|
import { browserExtensionTestRoots } from "./vitest.extension-browser-paths.mjs";
|
|
import { codexExtensionTestRoots } from "./vitest.extension-codex-paths.mjs";
|
|
import { diffsExtensionTestRoots } from "./vitest.extension-diffs-paths.mjs";
|
|
import { feishuExtensionTestRoots } from "./vitest.extension-feishu-paths.mjs";
|
|
import { ircExtensionTestRoots } from "./vitest.extension-irc-paths.mjs";
|
|
import { matrixExtensionTestRoots } from "./vitest.extension-matrix-paths.mjs";
|
|
import { mattermostExtensionTestRoots } from "./vitest.extension-mattermost-paths.mjs";
|
|
import { mediaExtensionTestRoots } from "./vitest.extension-media-paths.mjs";
|
|
import { memoryExtensionTestRoots } from "./vitest.extension-memory-paths.mjs";
|
|
import { messagingExtensionTestRoots } from "./vitest.extension-messaging-paths.mjs";
|
|
import { miscExtensionTestRoots } from "./vitest.extension-misc-paths.mjs";
|
|
import { msTeamsExtensionTestRoots } from "./vitest.extension-msteams-paths.mjs";
|
|
import {
|
|
providerExtensionTestRoots,
|
|
providerOpenAiExtensionTestRoots,
|
|
} from "./vitest.extension-provider-paths.mjs";
|
|
import { qaExtensionTestRoots } from "./vitest.extension-qa-paths.mjs";
|
|
import { telegramExtensionTestRoots } from "./vitest.extension-telegram-paths.mjs";
|
|
import { voiceCallExtensionTestRoots } from "./vitest.extension-voice-call-paths.mjs";
|
|
import { whatsAppExtensionTestRoots } from "./vitest.extension-whatsapp-paths.mjs";
|
|
import { zaloExtensionTestRoots } from "./vitest.extension-zalo-paths.mjs";
|
|
import { loadPatternListFromEnv } from "./vitest.pattern-file.ts";
|
|
import { createScopedVitestConfig } from "./vitest.scoped-config.ts";
|
|
|
|
export const extensionCatchAllExcludedTestRoots = [
|
|
activeMemoryExtensionTestRoots,
|
|
acpxExtensionTestRoots,
|
|
browserExtensionTestRoots,
|
|
codexExtensionTestRoots,
|
|
diffsExtensionTestRoots,
|
|
feishuExtensionTestRoots,
|
|
ircExtensionTestRoots,
|
|
matrixExtensionTestRoots,
|
|
mattermostExtensionTestRoots,
|
|
mediaExtensionTestRoots,
|
|
memoryExtensionTestRoots,
|
|
messagingExtensionTestRoots,
|
|
miscExtensionTestRoots,
|
|
msTeamsExtensionTestRoots,
|
|
providerOpenAiExtensionTestRoots,
|
|
providerExtensionTestRoots,
|
|
qaExtensionTestRoots,
|
|
telegramExtensionTestRoots,
|
|
voiceCallExtensionTestRoots,
|
|
whatsAppExtensionTestRoots,
|
|
zaloExtensionTestRoots,
|
|
].flat();
|
|
|
|
export function loadIncludePatternsFromEnv(
|
|
env: Record<string, string | undefined> = process.env,
|
|
): string[] | null {
|
|
return loadPatternListFromEnv("OPENCLAW_VITEST_INCLUDE_FILE", env);
|
|
}
|
|
|
|
export function createExtensionsVitestConfig(
|
|
env: Record<string, string | undefined> = process.env,
|
|
) {
|
|
return createScopedVitestConfig(loadIncludePatternsFromEnv(env) ?? [BUNDLED_PLUGIN_TEST_GLOB], {
|
|
dir: "extensions",
|
|
env,
|
|
name: "extensions",
|
|
passWithNoTests: true,
|
|
setupFiles: ["test/setup.extensions.ts"],
|
|
// Some bundled plugins still run on the channel surface; keep those roots
|
|
// out of the shared extensions lane.
|
|
exclude: [
|
|
...extensionExcludedChannelTestGlobs,
|
|
...extensionCatchAllExcludedTestRoots.map(
|
|
(root) => `${root.replace(/^extensions\//u, "")}/**`,
|
|
),
|
|
],
|
|
});
|
|
}
|
|
|
|
export default createExtensionsVitestConfig();
|