Files
openclaw/test/scripts/docker-e2e-seeds.test.ts
2026-06-18 12:14:01 +08:00

65 lines
3.1 KiB
TypeScript

// Docker E2E seed tests cover generated config and fixture-server contracts.
import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";
function readScript(pathname: string): string {
return readFileSync(pathname, "utf8");
}
describe("Docker E2E seed scripts", () => {
it("keeps the shared OpenAI seed helper aligned with packaged provider onboarding", () => {
const source = readScript("scripts/e2e/docker-openai-seed.ts");
expect(source).toContain("../../dist/plugin-sdk/provider-onboard.js");
expect(source).toContain('const DOCKER_OPENAI_MODEL_REF = "openai/gpt-5.5"');
expect(source).toContain('api: "openai-responses"');
expect(source).toContain('aliases: [{ modelRef: DOCKER_OPENAI_MODEL_REF, alias: "GPT" }]');
expect(source).toContain("primaryModelRef: DOCKER_OPENAI_MODEL_REF");
expect(source).toContain("openAiProvider.apiKey = apiKey");
});
it("keeps MCP channels config wired to seeded transcript artifacts", () => {
const source = readScript("scripts/e2e/mcp-channels-seed.ts");
expect(source).toContain(
'const sessionsDir = path.join(stateDir, "agents", "main", "sessions")',
);
expect(source).toContain('const sessionFile = path.join(sessionsDir, "sess-main.jsonl")');
expect(source).toContain('const storePath = path.join(sessionsDir, "sessions.json")');
expect(source).toContain('channel: "imessage"');
expect(source).toContain('accountId: "imessage-default"');
expect(source).toContain('"hello from seeded transcript"');
expect(source).toContain('media_type: "image/png"');
});
it("keeps cron MCP cleanup config wired to its probe server artifacts", () => {
const source = readScript("scripts/e2e/cron-mcp-cleanup-seed.ts");
expect(source).toContain('process.title = "openclaw-cron-mcp-cleanup-probe"');
expect(source).toContain('const probeDir = path.join(stateDir, "cron-mcp-cleanup")');
expect(source).toContain('const serverPath = path.join(probeDir, "probe-server.mjs")');
expect(source).toContain("await fs.rm(pidsPath, { force: true })");
expect(source).toContain("cronCleanupProbe: {");
expect(source).toContain('command: "node"');
expect(source).toContain("args: [serverPath]");
expect(source).toContain("cwd: probeDir");
expect(source).toContain("subagents: {\n runTimeoutSeconds: 8,");
});
it("keeps MCP code-mode gateway config wired to its fixture server artifacts", () => {
const source =
readScript("scripts/e2e/mcp-code-mode-gateway-seed.ts") +
readScript("scripts/e2e/lib/mcp-code-mode-probe-server.ts");
expect(source).toContain('const serverPath = path.join(stateDir, "mcp-code-mode-fixture"');
expect(source).toContain('["alpha", "fixture-note-alpha"]');
expect(source).toContain("responses: {\n enabled: true,");
expect(source).toContain("codeMode: {\n enabled: true,");
expect(source).toContain("fixture: {");
expect(source).toContain('command: "node"');
expect(source).toContain("args: [serverPath]");
expect(source).toContain("cwd: path.dirname(serverPath)");
expect(source).toContain("connectionTimeoutMs: 30_000");
});
});