test: stabilize pdf tool runtime mocks
This commit is contained in:
parent
63c5932e84
commit
00b7308396
@ -10,15 +10,24 @@ import {
|
||||
providerSupportsNativePdf,
|
||||
resolvePdfToolMaxTokens,
|
||||
} from "./pdf-tool.helpers.js";
|
||||
import { createPdfTool, resolvePdfModelConfigForTool } from "./pdf-tool.js";
|
||||
|
||||
vi.mock("@mariozechner/pi-ai", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("@mariozechner/pi-ai")>();
|
||||
return {
|
||||
...actual,
|
||||
complete: vi.fn(),
|
||||
};
|
||||
});
|
||||
const completeMock = vi.hoisted(() => vi.fn());
|
||||
|
||||
type PdfToolModule = typeof import("./pdf-tool.js");
|
||||
let createPdfTool: PdfToolModule["createPdfTool"];
|
||||
let resolvePdfModelConfigForTool: PdfToolModule["resolvePdfModelConfigForTool"];
|
||||
|
||||
async function importPdfToolModule(): Promise<PdfToolModule> {
|
||||
vi.resetModules();
|
||||
vi.doMock("@mariozechner/pi-ai", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("@mariozechner/pi-ai")>();
|
||||
return {
|
||||
...actual,
|
||||
complete: completeMock,
|
||||
};
|
||||
});
|
||||
return import("./pdf-tool.js");
|
||||
}
|
||||
|
||||
async function withTempAgentDir<T>(run: (agentDir: string) => Promise<T>): Promise<T> {
|
||||
const agentDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-pdf-"));
|
||||
@ -242,8 +251,10 @@ describe("providerSupportsNativePdf", () => {
|
||||
describe("resolvePdfModelConfigForTool", () => {
|
||||
const priorFetch = global.fetch;
|
||||
|
||||
beforeEach(() => {
|
||||
beforeEach(async () => {
|
||||
resetAuthEnv();
|
||||
completeMock.mockReset();
|
||||
({ resolvePdfModelConfigForTool } = await importPdfToolModule());
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@ -321,8 +332,10 @@ describe("resolvePdfModelConfigForTool", () => {
|
||||
describe("createPdfTool", () => {
|
||||
const priorFetch = global.fetch;
|
||||
|
||||
beforeEach(() => {
|
||||
beforeEach(async () => {
|
||||
resetAuthEnv();
|
||||
completeMock.mockReset();
|
||||
({ createPdfTool } = await importPdfToolModule());
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@ -484,8 +497,7 @@ describe("createPdfTool", () => {
|
||||
images: [],
|
||||
});
|
||||
|
||||
const piAi = await import("@mariozechner/pi-ai");
|
||||
vi.mocked(piAi.complete).mockResolvedValue({
|
||||
completeMock.mockResolvedValue({
|
||||
role: "assistant",
|
||||
stopReason: "stop",
|
||||
content: [{ type: "text", text: "fallback summary" }],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user