47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
import { probeSignal } from "./probe.js";
|
|
|
|
const signalCheckMock = vi.fn();
|
|
const signalRpcRequestMock = vi.fn();
|
|
|
|
vi.mock("./client.js", () => ({
|
|
signalCheck: (...args: unknown[]) => signalCheckMock(...args),
|
|
signalRpcRequest: (...args: unknown[]) => signalRpcRequestMock(...args),
|
|
}));
|
|
|
|
describe("probeSignal", () => {
|
|
beforeEach(() => {
|
|
vi.clearAllMocks();
|
|
});
|
|
|
|
it("extracts version from {version} result", async () => {
|
|
signalCheckMock.mockResolvedValueOnce({
|
|
ok: true,
|
|
status: 200,
|
|
error: null,
|
|
});
|
|
signalRpcRequestMock.mockResolvedValueOnce({ version: "0.13.22" });
|
|
|
|
const res = await probeSignal("http://127.0.0.1:8080", 1000);
|
|
|
|
expect(res.ok).toBe(true);
|
|
expect(res.version).toBe("0.13.22");
|
|
expect(res.status).toBe(200);
|
|
});
|
|
|
|
it("returns ok=false when /check fails", async () => {
|
|
signalCheckMock.mockResolvedValueOnce({
|
|
ok: false,
|
|
status: 503,
|
|
error: "HTTP 503",
|
|
});
|
|
|
|
const res = await probeSignal("http://127.0.0.1:8080", 1000);
|
|
|
|
expect(res.ok).toBe(false);
|
|
expect(res.status).toBe(503);
|
|
expect(res.version).toBe(null);
|
|
});
|
|
});
|