UNPKG

assistant-cloud

Version:

Cloud integration for assistant-ui

40 lines (36 loc) • 1.34 kB
import { describe, expect, it, vi } from "vitest"; import type { AssistantCloudAPI } from "./AssistantCloudAPI"; import { AssistantCloudThreadRuns } from "./AssistantCloudThreadRuns"; const createRuns = () => { const makeRequest = vi.fn(); const api = { makeRequest } as unknown as AssistantCloudAPI; return { runs: new AssistantCloudThreadRuns(api), makeRequest }; }; describe("AssistantCloudThreadRuns", () => { it("heartbeats by lease id alone", async () => { const { runs, makeRequest } = createRuns(); makeRequest.mockResolvedValueOnce({ heartbeat_interval_ms: 20000, }); await expect(runs.heartbeat("t1", "lease/1")).resolves.toEqual({ heartbeat_interval_ms: 20000, }); expect(makeRequest).toHaveBeenCalledWith( "/threads/t1/runs/lease%2F1/heartbeat", { method: "POST" }, ); }); it("ends a run with an optional reason", async () => { const { runs, makeRequest } = createRuns(); makeRequest.mockResolvedValue({}); await runs.end("t1", "lease_1", { reason: "cancelled" }); await runs.end("t1", "lease_1"); expect(makeRequest.mock.calls).toEqual([ [ "/threads/t1/runs/lease_1/end", { method: "POST", body: { reason: "cancelled" } }, ], ["/threads/t1/runs/lease_1/end", { method: "POST", body: {} }], ]); }); });