mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
016c5aa772
Co-authored-by: Amp <amp@ampcode.com>
56 lines
2.1 KiB
TypeScript
56 lines
2.1 KiB
TypeScript
// Vitest ui e2e config wires the ui e2e test shard.
|
|
import { defineConfig } from "vitest/config";
|
|
import { loadPatternListFromEnv, narrowIncludePatternsForCli } from "./vitest.pattern-file.ts";
|
|
import { sharedVitestConfig } from "./vitest.shared.config.ts";
|
|
import { UiE2eSequencer } from "./vitest.ui-e2e.sequencer.ts";
|
|
|
|
const uiE2eIncludePatterns = ["ui/src/**/*.e2e.test.ts"];
|
|
const uiE2eRealGatewayTestFiles = [
|
|
"ui/src/e2e/control-ui-auth-transports.e2e.test.ts",
|
|
"ui/src/e2e/mcp-app-conformance.e2e.test.ts",
|
|
];
|
|
|
|
function createUiE2eVitestConfig(
|
|
env: Record<string, string | undefined> = process.env,
|
|
argv: string[] = process.argv,
|
|
) {
|
|
const base = sharedVitestConfig as Record<string, unknown>;
|
|
const baseTest = sharedVitestConfig.test ?? {};
|
|
const baseSequence = (baseTest as { sequence?: object }).sequence;
|
|
const exclude = [
|
|
...(baseTest.exclude ?? []).filter((pattern) => pattern !== "**/*.e2e.test.ts"),
|
|
...(env.OPENCLAW_UI_E2E_SKIP_REAL_GATEWAY === "1" ? uiE2eRealGatewayTestFiles : []),
|
|
];
|
|
const includeFromEnv = loadPatternListFromEnv("OPENCLAW_VITEST_INCLUDE_FILE", env);
|
|
const include =
|
|
includeFromEnv ??
|
|
narrowIncludePatternsForCli(uiE2eIncludePatterns, argv) ??
|
|
uiE2eIncludePatterns;
|
|
|
|
return defineConfig({
|
|
...base,
|
|
cacheDir: ".artifacts/vite-ui-e2e",
|
|
test: {
|
|
...baseTest,
|
|
environment: "node",
|
|
exclude,
|
|
// Vitest's expect.poll defaults to a 1s deadline; these polls await real
|
|
// Chromium renders, which loaded CI runners regularly stall past 1s.
|
|
// Correctness is the eventual state, so a larger budget only trades
|
|
// failure latency, not coverage.
|
|
expect: { poll: { interval: 100, timeout: 15_000 } },
|
|
fileParallelism: false,
|
|
globalSetup: ["test/vitest/vitest.ui-e2e.global-setup.ts"],
|
|
include,
|
|
isolate: true,
|
|
name: "ui-e2e",
|
|
pool: "forks",
|
|
runner: undefined,
|
|
sequence: { ...baseSequence, sequencer: UiE2eSequencer },
|
|
setupFiles: ["test/vitest/vitest.ui-e2e.setup.ts"],
|
|
},
|
|
});
|
|
}
|
|
|
|
export default createUiE2eVitestConfig();
|