mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 05:01:15 +00:00
74 lines
2.4 KiB
TypeScript
74 lines
2.4 KiB
TypeScript
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
|
|
const loadShellEnvFallbackMock = vi.fn();
|
|
const collectProviderApiKeysMock = vi.fn((provider: string) =>
|
|
process.env[`TEST_AUTH_${provider.toUpperCase()}`] ? ["test-key"] : [],
|
|
);
|
|
|
|
vi.mock("../../src/infra/shell-env.js", () => ({
|
|
loadShellEnvFallback: loadShellEnvFallbackMock,
|
|
}));
|
|
|
|
vi.mock("../../src/agents/live-auth-keys.js", () => ({
|
|
collectProviderApiKeys: collectProviderApiKeysMock,
|
|
}));
|
|
|
|
describe("test-live-media", () => {
|
|
afterEach(() => {
|
|
collectProviderApiKeysMock.mockClear();
|
|
loadShellEnvFallbackMock.mockReset();
|
|
vi.unstubAllEnvs();
|
|
});
|
|
|
|
it("defaults to all suites with auth filtering", async () => {
|
|
vi.stubEnv("TEST_AUTH_OPENAI", "1");
|
|
vi.stubEnv("TEST_AUTH_GOOGLE", "1");
|
|
vi.stubEnv("TEST_AUTH_MINIMAX", "1");
|
|
vi.stubEnv("TEST_AUTH_FAL", "1");
|
|
vi.stubEnv("TEST_AUTH_VYDRA", "1");
|
|
|
|
const { buildRunPlan, parseArgs } = await import("../../scripts/test-live-media.ts");
|
|
const plan = buildRunPlan(parseArgs([]));
|
|
|
|
expect(plan.map((entry) => entry.suite.id)).toEqual(["image", "music", "video"]);
|
|
expect(plan.find((entry) => entry.suite.id === "image")?.providers).toEqual([
|
|
"fal",
|
|
"google",
|
|
"minimax",
|
|
"openai",
|
|
"vydra",
|
|
]);
|
|
expect(plan.find((entry) => entry.suite.id === "music")?.providers).toEqual([
|
|
"google",
|
|
"minimax",
|
|
]);
|
|
expect(plan.find((entry) => entry.suite.id === "video")?.providers).toEqual([
|
|
"fal",
|
|
"google",
|
|
"minimax",
|
|
"openai",
|
|
"vydra",
|
|
]);
|
|
});
|
|
|
|
it("supports suite-specific provider filters without auth narrowing", async () => {
|
|
const { buildRunPlan, parseArgs } = await import("../../scripts/test-live-media.ts");
|
|
const plan = buildRunPlan(
|
|
parseArgs(["video", "--video-providers", "openai,runway", "--all-providers"]),
|
|
);
|
|
|
|
expect(plan).toHaveLength(1);
|
|
expect(plan[0]?.suite.id).toBe("video");
|
|
expect(plan[0]?.providers).toEqual(["openai", "runway"]);
|
|
});
|
|
|
|
it("forwards quiet flags separately from passthrough args", async () => {
|
|
const { parseArgs } = await import("../../scripts/test-live-media.ts");
|
|
const options = parseArgs(["image", "--quiet", "--reporter", "dot"]);
|
|
|
|
expect(options.suites).toEqual(["image"]);
|
|
expect(options.quietArgs).toEqual(["--quiet"]);
|
|
expect(options.passthroughArgs).toEqual(["--reporter", "dot"]);
|
|
});
|
|
});
|