openhands / src /api /agent-canvas-updates.test.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
63522a5 verified
Raw
History Blame Contribute Delete
1.38 kB
import { afterEach, describe, expect, it, vi } from "vitest";
import { fetchLatestAgentCanvasVersion } from "./agent-canvas-updates";
function stubFetchResponse(response: Partial<Response>) {
const fetchMock = vi.fn().mockResolvedValue(response as Response);
vi.stubGlobal("fetch", fetchMock);
return fetchMock;
}
afterEach(() => {
vi.unstubAllGlobals();
});
describe("fetchLatestAgentCanvasVersion", () => {
it("fetches the npm registry latest dist-tag and returns the trimmed version", async () => {
const fetchMock = stubFetchResponse({
ok: true,
json: async () => ({ version: " 1.6.0 " }),
});
await expect(fetchLatestAgentCanvasVersion()).resolves.toBe("1.6.0");
expect(fetchMock).toHaveBeenCalledWith(
"https://registry.npmjs.org/@openhands/agent-canvas/latest",
expect.objectContaining({ headers: { Accept: "application/json" } }),
);
});
it("rejects when the registry responds with an error status", async () => {
stubFetchResponse({ ok: false, status: 503 });
await expect(fetchLatestAgentCanvasVersion()).rejects.toThrow("503");
});
it("rejects when the response has no usable version field", async () => {
stubFetchResponse({ ok: true, json: async () => ({ version: 42 }) });
await expect(fetchLatestAgentCanvasVersion()).rejects.toThrow(
"missing version",
);
});
});