mirror of https://github.com/openclaw/openclaw.git
64 lines
1.9 KiB
TypeScript
64 lines
1.9 KiB
TypeScript
import { vi } from "vitest";
|
|
|
|
vi.mock("@mariozechner/pi-ai", async () => {
|
|
const original =
|
|
await vi.importActual<typeof import("@mariozechner/pi-ai")>("@mariozechner/pi-ai");
|
|
return {
|
|
...original,
|
|
getOAuthApiKey: () => undefined,
|
|
getOAuthProviders: () => [],
|
|
loginOpenAICodex: vi.fn(),
|
|
};
|
|
});
|
|
|
|
vi.mock("@mariozechner/clipboard", () => ({
|
|
availableFormats: () => [],
|
|
getText: async () => "",
|
|
setText: async () => {},
|
|
hasText: () => false,
|
|
getImageBinary: async () => [],
|
|
getImageBase64: async () => "",
|
|
setImageBinary: async () => {},
|
|
setImageBase64: async () => {},
|
|
hasImage: () => false,
|
|
getHtml: async () => "",
|
|
setHtml: async () => {},
|
|
hasHtml: () => false,
|
|
getRtf: async () => "",
|
|
setRtf: async () => {},
|
|
hasRtf: () => false,
|
|
clear: async () => {},
|
|
watch: () => {},
|
|
callThreadsafeFunction: () => {},
|
|
}));
|
|
|
|
// Ensure Vitest environment is properly set.
|
|
process.env.VITEST = "true";
|
|
// Config validation walks plugin manifests; keep an aggressive cache in tests to avoid
|
|
// repeated filesystem discovery across suites/workers.
|
|
process.env.OPENCLAW_PLUGIN_MANIFEST_CACHE_MS ??= "60000";
|
|
// Vitest fork workers can load transitive lockfile helpers many times per worker.
|
|
// Raise listener budget to avoid noisy MaxListeners warnings and warning-stack overhead.
|
|
const TEST_PROCESS_MAX_LISTENERS = 128;
|
|
if (process.getMaxListeners() > 0 && process.getMaxListeners() < TEST_PROCESS_MAX_LISTENERS) {
|
|
process.setMaxListeners(TEST_PROCESS_MAX_LISTENERS);
|
|
}
|
|
|
|
import { installProcessWarningFilter } from "../src/infra/warning-filter.js";
|
|
import { withIsolatedTestHome } from "./test-env.js";
|
|
|
|
type SharedTestSetupOptions = {
|
|
loadProfileEnv?: boolean;
|
|
};
|
|
|
|
export function installSharedTestSetup(options?: SharedTestSetupOptions): {
|
|
cleanup: () => void;
|
|
tempHome: string;
|
|
} {
|
|
const testEnv = withIsolatedTestHome({
|
|
loadProfileEnv: options?.loadProfileEnv,
|
|
});
|
|
installProcessWarningFilter();
|
|
return testEnv;
|
|
}
|