// vitest
import { vi, describe, it, expect } from "vitest";
vi.mock("@zespan/sdk", () => ({
zespan: {
init: vi.fn(),
wrapOpenAI: (client: unknown) => client, // return client unchanged
wrapAnthropic: (client: unknown) => client,
},
withAgent: vi.fn(async (_opts, fn) =>
fn({ traceTool: async (_name: string, _args: unknown, run: () => unknown) => run() }),
),
// The real startSpan returns { span, run } — span.end() is async.
startSpan: vi.fn(() => ({
span: { setEvalScore: vi.fn(), recordDocuments: vi.fn(), end: vi.fn(async () => {}) },
run: <T,>(fn: () => T) => fn(),
})),
}));
describe("my agent", () => {
it("calls the model once", async () => {
// your test — Zespan SDK is a no-op
});
});