mirror of
https://github.com/moltbot/moltbot.git
synced 2026-05-06 15:18:58 +00:00
test: split ui unit tests from generic lane
This commit is contained in:
@@ -443,7 +443,7 @@ Think of the suites as “increasing realism” (and increasing flakiness/cost):
|
||||
|
||||
- Command: `pnpm test`
|
||||
- Config: untargeted runs use the `vitest.full-*.config.ts` shard set and may expand multi-project shards into per-project configs for parallel scheduling
|
||||
- Files: core/unit inventories under `src/**/*.test.ts`, `packages/**/*.test.ts`, `test/**/*.test.ts`, and the whitelisted `ui` node tests covered by `vitest.unit.config.ts`
|
||||
- Files: core/unit inventories under `src/**/*.test.ts`, `packages/**/*.test.ts`, and `test/**/*.test.ts`; UI unit tests run in the dedicated `unit-ui` shard
|
||||
- Scope:
|
||||
- Pure unit tests
|
||||
- In-process integration tests (gateway auth, routing, tooling, parsing, config)
|
||||
|
||||
@@ -140,21 +140,21 @@ describe("projects vitest config", () => {
|
||||
]);
|
||||
});
|
||||
|
||||
it("keeps the root ui lane aligned with the isolated jsdom setup", () => {
|
||||
it("keeps the root ui lane aligned with the shared jsdom setup", () => {
|
||||
const config = createUiVitestConfig();
|
||||
expect(config.test.environment).toBe("jsdom");
|
||||
expect(config.test.isolate).toBe(true);
|
||||
expect(config.test.runner).toBeUndefined();
|
||||
expect(config.test.isolate).toBe(false);
|
||||
expect(normalizeConfigPath(config.test.runner)).toBe("test/non-isolated-runner.ts");
|
||||
const setupFiles = normalizeConfigPaths(config.test.setupFiles);
|
||||
expect(setupFiles).not.toContain("test/setup-openclaw-runtime.ts");
|
||||
expect(setupFiles).toContain("ui/src/test-helpers/lit-warnings.setup.ts");
|
||||
expect(config.test.deps?.optimizer?.web?.enabled).toBe(true);
|
||||
});
|
||||
|
||||
it("keeps the unit-ui shard aligned with the isolated jsdom setup", () => {
|
||||
it("keeps the unit-ui shard aligned with the shared jsdom setup", () => {
|
||||
expect(unitUiConfig.test?.environment).toBe("jsdom");
|
||||
expect(unitUiConfig.test?.isolate).toBe(true);
|
||||
expect(unitUiConfig.test?.runner).toBeUndefined();
|
||||
expect(unitUiConfig.test?.isolate).toBe(false);
|
||||
expect(normalizeConfigPath(unitUiConfig.test?.runner)).toBe("test/non-isolated-runner.ts");
|
||||
const setupFiles = normalizeConfigPaths(unitUiConfig.test?.setupFiles);
|
||||
expect(setupFiles).not.toContain("test/setup-openclaw-runtime.ts");
|
||||
expect(setupFiles).toContain("ui/src/test-helpers/lit-warnings.setup.ts");
|
||||
|
||||
@@ -327,8 +327,8 @@ describe("scoped vitest configs", () => {
|
||||
}
|
||||
|
||||
expect(defaultUiConfig.test?.pool).toBe("threads");
|
||||
expect(defaultUiConfig.test?.isolate).toBe(true);
|
||||
expect(defaultUiConfig.test?.runner).toBeUndefined();
|
||||
expect(defaultUiConfig.test?.isolate).toBe(false);
|
||||
expect(normalizeConfigPath(defaultUiConfig.test?.runner)).toBe("test/non-isolated-runner.ts");
|
||||
});
|
||||
|
||||
it("keeps the process lane off the openclaw runtime setup", () => {
|
||||
|
||||
@@ -78,6 +78,13 @@ describe("unit vitest config", () => {
|
||||
it("keeps acp and ui tests out of the generic unit lane", () => {
|
||||
const unitConfig = createUnitVitestConfig({});
|
||||
expect(unitConfig.test?.exclude).toEqual(expect.arrayContaining(["extensions/**", "test/**"]));
|
||||
expect(unitConfig.test?.include).not.toEqual(
|
||||
expect.arrayContaining([
|
||||
"ui/src/ui/app-chat.test.ts",
|
||||
"ui/src/ui/chat/**/*.test.ts",
|
||||
"ui/src/ui/views/chat.test.ts",
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
it("narrows the active include list to CLI file filters when present", () => {
|
||||
|
||||
@@ -3,8 +3,8 @@ import { bundledPluginFile } from "./helpers/bundled-plugin-paths.js";
|
||||
import { isUnitConfigTestFile } from "./vitest/vitest.unit-paths.mjs";
|
||||
|
||||
describe("isUnitConfigTestFile", () => {
|
||||
it("accepts unit-config src tests", () => {
|
||||
expect(isUnitConfigTestFile("ui/src/ui/views/channels.test.ts")).toBe(true);
|
||||
it("accepts unit-config package tests", () => {
|
||||
expect(isUnitConfigTestFile("packages/plugin-package-contract/src/index.test.ts")).toBe(true);
|
||||
});
|
||||
|
||||
it("rejects files excluded from the unit config", () => {
|
||||
@@ -31,8 +31,8 @@ describe("isUnitConfigTestFile", () => {
|
||||
expect(isUnitConfigTestFile("test/extension-test-boundary.test.ts")).toBe(false);
|
||||
expect(isUnitConfigTestFile("src/agents/pi-embedded-runner.test.ts")).toBe(false);
|
||||
expect(isUnitConfigTestFile("src/commands/onboard.test.ts")).toBe(false);
|
||||
expect(isUnitConfigTestFile("ui/src/ui/views/channels.test.ts")).toBe(true);
|
||||
expect(isUnitConfigTestFile("ui/src/ui/views/chat.test.ts")).toBe(true);
|
||||
expect(isUnitConfigTestFile("ui/src/ui/views/channels.test.ts")).toBe(false);
|
||||
expect(isUnitConfigTestFile("ui/src/ui/views/chat.test.ts")).toBe(false);
|
||||
expect(isUnitConfigTestFile("ui/src/ui/views/other.test.ts")).toBe(false);
|
||||
expect(isUnitConfigTestFile("src/infra/git-commit.live.test.ts")).toBe(false);
|
||||
expect(isUnitConfigTestFile("src/infra/git-commit.e2e.test.ts")).toBe(false);
|
||||
|
||||
@@ -11,6 +11,7 @@ export { resolveDefaultVitestPool, resolveLocalVitestMaxWorkers, resolveLocalVit
|
||||
|
||||
export const rootVitestProjects = [
|
||||
"test/vitest/vitest.unit.config.ts",
|
||||
"test/vitest/vitest.unit-ui.config.ts",
|
||||
"test/vitest/vitest.infra.config.ts",
|
||||
"test/vitest/vitest.boundary.config.ts",
|
||||
"test/vitest/vitest.contracts-channel-surface.config.ts",
|
||||
|
||||
@@ -5,15 +5,6 @@ export const unitTestIncludePatterns = [
|
||||
"src/**/*.test.ts",
|
||||
"packages/**/*.test.ts",
|
||||
"test/**/*.test.ts",
|
||||
"ui/src/ui/app-chat.test.ts",
|
||||
"ui/src/ui/chat/**/*.test.ts",
|
||||
"ui/src/ui/views/agents-utils.test.ts",
|
||||
"ui/src/ui/views/channels.test.ts",
|
||||
"ui/src/ui/views/chat.test.ts",
|
||||
"ui/src/ui/views/dreams.test.ts",
|
||||
"ui/src/ui/views/usage-render-details.test.ts",
|
||||
"ui/src/ui/controllers/agents.test.ts",
|
||||
"ui/src/ui/controllers/chat.test.ts",
|
||||
];
|
||||
|
||||
export const boundaryTestFiles = [
|
||||
|
||||
Reference in New Issue
Block a user