37 lines
985 B
TypeScript
37 lines
985 B
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
|
|
import { createClawdisTools } from "./clawdis-tools.js";
|
|
|
|
describe("gateway tool", () => {
|
|
it("schedules SIGUSR1 restart", async () => {
|
|
vi.useFakeTimers();
|
|
const kill = vi.spyOn(process, "kill").mockImplementation(() => true);
|
|
|
|
try {
|
|
const tool = createClawdisTools().find(
|
|
(candidate) => candidate.name === "gateway",
|
|
);
|
|
expect(tool).toBeDefined();
|
|
if (!tool) throw new Error("missing gateway tool");
|
|
|
|
const result = await tool.execute("call1", {
|
|
action: "restart",
|
|
delayMs: 0,
|
|
});
|
|
expect(result.details).toMatchObject({
|
|
ok: true,
|
|
pid: process.pid,
|
|
signal: "SIGUSR1",
|
|
delayMs: 0,
|
|
});
|
|
|
|
expect(kill).not.toHaveBeenCalled();
|
|
await vi.runAllTimersAsync();
|
|
expect(kill).toHaveBeenCalledWith(process.pid, "SIGUSR1");
|
|
} finally {
|
|
kill.mockRestore();
|
|
vi.useRealTimers();
|
|
}
|
|
});
|
|
});
|