Claude
fix(ci): format code and add ErrorBoundary tests to pass CI
900a32d unverified
raw
history blame
2.49 kB
import { describe, it, expect } from "vitest";
import { server } from "../../mocks/server";
import { errorHandlers } from "../../mocks/handlers";
import { apiClient } from "../client";
describe("apiClient", () => {
describe("getCases", () => {
it("returns list of case IDs", async () => {
const result = await apiClient.getCases();
expect(result.cases).toHaveLength(3);
expect(result.cases).toContain("sub-stroke0001");
});
it("throws ApiError on server error", async () => {
server.use(errorHandlers.casesServerError);
await expect(apiClient.getCases()).rejects.toThrow(
/failed to fetch cases/i,
);
});
it("throws ApiError on network error", async () => {
server.use(errorHandlers.casesNetworkError);
await expect(apiClient.getCases()).rejects.toThrow();
});
});
describe("createSegmentJob", () => {
it("returns job ID and pending status", async () => {
const result = await apiClient.createSegmentJob("sub-stroke0001");
expect(result.jobId).toBeDefined();
expect(result.status).toBe("pending");
expect(result.message).toContain("sub-stroke0001");
});
it("sends fast_mode parameter", async () => {
const result = await apiClient.createSegmentJob("sub-stroke0001", false);
expect(result.jobId).toBeDefined();
expect(result.status).toBe("pending");
});
it("throws ApiError on server error", async () => {
server.use(errorHandlers.segmentCreateError);
await expect(
apiClient.createSegmentJob("sub-stroke0001"),
).rejects.toThrow(/failed to create job/i);
});
});
describe("getJobStatus", () => {
it("returns job status with progress", async () => {
// First create a job
const createResult = await apiClient.createSegmentJob("sub-stroke0001");
// Then get its status
const status = await apiClient.getJobStatus(createResult.jobId);
expect(status.jobId).toBe(createResult.jobId);
expect(["pending", "running", "completed"]).toContain(status.status);
expect(status.progress).toBeGreaterThanOrEqual(0);
expect(status.progress).toBeLessThanOrEqual(100);
expect(status.progressMessage).toBeDefined();
});
it("throws ApiError when job not found", async () => {
server.use(errorHandlers.jobNotFound);
await expect(apiClient.getJobStatus("nonexistent-job")).rejects.toThrow(
/not found/i,
);
});
});
});