mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-21 10:16:44 +00:00
62 lines
1.9 KiB
TypeScript
62 lines
1.9 KiB
TypeScript
// Parallels macOS Discord tests cover host-side Discord API requests.
|
|
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
import { tmpdir } from "node:os";
|
|
import path from "node:path";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
|
|
const { runMock } = vi.hoisted(() => ({
|
|
runMock: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("../../scripts/e2e/parallels/host-command.ts", async (importOriginal) => {
|
|
const actual =
|
|
await importOriginal<typeof import("../../scripts/e2e/parallels/host-command.ts")>();
|
|
return {
|
|
...actual,
|
|
run: runMock,
|
|
};
|
|
});
|
|
|
|
import { MacosDiscordSmoke } from "../../scripts/e2e/parallels/macos-discord.ts";
|
|
|
|
describe("Parallels macOS Discord smoke", () => {
|
|
it("bounds host Discord API connections, transfers, and processes", async () => {
|
|
const runDir = await mkdtemp(path.join(tmpdir(), "openclaw-parallels-macos-discord-"));
|
|
await writeFile(path.join(runDir, "fresh.discord-sent-message-id"), "message-id\n", "utf8");
|
|
runMock.mockReturnValue({ status: 0, stderr: "", stdout: "" });
|
|
|
|
try {
|
|
const smoke = new MacosDiscordSmoke({
|
|
config: { channelId: "channel-id", guildId: "guild-id", token: "" },
|
|
guest: {} as never,
|
|
guestNode: "node",
|
|
guestOpenClaw: "openclaw",
|
|
guestOpenClawEntry: "openclaw.mjs",
|
|
runDir,
|
|
vmName: "macos-vm",
|
|
});
|
|
|
|
await smoke.cleanupMessages();
|
|
|
|
expect(runMock).toHaveBeenCalledOnce();
|
|
const [command, args, options] = runMock.mock.calls[0] ?? [];
|
|
expect(command).toBe("curl");
|
|
expect(args?.slice(0, 7)).toEqual([
|
|
"-fsS",
|
|
"--connect-timeout",
|
|
"10",
|
|
"--max-time",
|
|
"30",
|
|
"-X",
|
|
"DELETE",
|
|
]);
|
|
expect(args?.at(-1)).toBe(
|
|
"https://discord.com/api/v10/channels/channel-id/messages/message-id",
|
|
);
|
|
expect(options).toEqual({ quiet: true, timeoutMs: 45_000 });
|
|
} finally {
|
|
await rm(runDir, { force: true, recursive: true });
|
|
}
|
|
});
|
|
});
|