mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-09-28 12:35:08 +02:00
79 lines
2.4 KiB
TypeScript
79 lines
2.4 KiB
TypeScript
import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
|
|
import { Client } from "../client.js";
|
|
import { overrideFetchImplementation } from "../singletons/fetch.js";
|
|
|
|
describe.each([["global"], ["mocked"]])(
|
|
"Client uses %s fetch",
|
|
(description: string) => {
|
|
let globalFetchMock: ReturnType<typeof vi.fn>;
|
|
let overriddenFetch: ReturnType<typeof vi.fn>;
|
|
|
|
let expectedFetchMock: ReturnType<typeof vi.fn>;
|
|
let unexpectedFetchMock: ReturnType<typeof vi.fn>;
|
|
|
|
beforeEach(() => {
|
|
globalFetchMock = vi.fn(() =>
|
|
Promise.resolve({
|
|
ok: true,
|
|
json: () =>
|
|
Promise.resolve({
|
|
batch_ingest_config: {
|
|
use_multipart_endpoint: true,
|
|
},
|
|
}),
|
|
text: () => Promise.resolve(""),
|
|
headers: new Headers({}),
|
|
}),
|
|
);
|
|
overriddenFetch = vi.fn(() =>
|
|
Promise.resolve({
|
|
ok: true,
|
|
json: () =>
|
|
Promise.resolve({
|
|
batch_ingest_config: {
|
|
use_multipart_endpoint: true,
|
|
},
|
|
}),
|
|
text: () => Promise.resolve(""),
|
|
headers: new Headers({}),
|
|
}),
|
|
);
|
|
expectedFetchMock =
|
|
description === "mocked" ? overriddenFetch : globalFetchMock;
|
|
unexpectedFetchMock =
|
|
description === "mocked" ? globalFetchMock : overriddenFetch;
|
|
|
|
if (description === "mocked") {
|
|
overrideFetchImplementation(overriddenFetch);
|
|
} else {
|
|
overrideFetchImplementation(globalFetchMock);
|
|
}
|
|
// Mock global fetch
|
|
(globalThis as any).fetch = globalFetchMock;
|
|
});
|
|
|
|
afterEach(() => {
|
|
vi.restoreAllMocks();
|
|
});
|
|
|
|
describe("createRuns", () => {
|
|
it("should create an example with the given input and generation", async () => {
|
|
const client = new Client({ apiKey: "test-api-key" });
|
|
|
|
const thread = await client.threads.create();
|
|
expect(expectedFetchMock).toHaveBeenCalledTimes(1);
|
|
expect(unexpectedFetchMock).not.toHaveBeenCalled();
|
|
|
|
vi.clearAllMocks(); // Clear all mocks before the next operation
|
|
|
|
// Then clear & run the function
|
|
await client.runs.create(thread.thread_id, "somegraph", {
|
|
input: { foo: "bar" },
|
|
});
|
|
expect(expectedFetchMock).toHaveBeenCalledTimes(1);
|
|
expect(unexpectedFetchMock).not.toHaveBeenCalled();
|
|
});
|
|
});
|
|
},
|
|
);
|