// @ts-nocheck import { describe, expect, it, vi } from "vitest"; import { prisma } from "@/lib/prisma"; import { rcon } from "@/lib/services/rcon"; vi.mock("@/lib/permissions", () => ({ PERMS: { SETTINGS_EDIT: "settings.edit" }, })); vi.mock("@/lib/prisma", () => ({ prisma: { emulatorSettings: { upsert: vi.fn() } }, })); vi.mock("@/lib/safe-action", () => ({ adminAction: vi.fn((_opts: unknown, fn: (...args: unknown[]) => unknown) => fn), })); vi.mock("@/lib/safe-action-shared", () => ({ actionOk: vi.fn(() => "ok") })); vi.mock("@/lib/services/audit", () => ({ logAudit: vi.fn() })); vi.mock("@/lib/services/rcon", () => ({ rcon: { updateConfig: vi.fn() } })); describe("saveEmulatorSettings", () => { it("saves settings and calls rcon update", async () => { vi.mocked(prisma.emulatorSettings.upsert).mockResolvedValue({} as never); const handler = (await import("./emulator").then( (m) => m.saveEmulatorSettings, )) as unknown as (ctx: { data: { settings: Record }; session: { user: { id: string } }; }) => Promise; const result = await handler({ data: { settings: { key1: "val1", key2: "val2" } }, session: { user: { id: "1" } }, }); expect(prisma.emulatorSettings.upsert).toHaveBeenCalledTimes(2); expect(rcon.updateConfig).toHaveBeenCalled(); expect(result).toBe("ok"); }); });