Files
openclaw/extensions/firecrawl/src/firecrawl-search-tool.test.ts
Peter Steinberger 3725b38335 fix: restore ci gates
2026-03-23 14:32:10 +00:00

64 lines
1.6 KiB
TypeScript

import { beforeEach, describe, expect, it, vi } from "vitest";
const { runFirecrawlSearch } = vi.hoisted(() => ({
runFirecrawlSearch: vi.fn(async (params: Record<string, unknown>) => ({
ok: true,
params,
})),
}));
vi.mock("./firecrawl-client.js", () => ({
runFirecrawlSearch,
}));
describe("firecrawl search tool", () => {
beforeEach(() => {
vi.resetModules();
runFirecrawlSearch.mockReset();
runFirecrawlSearch.mockImplementation(async (params: Record<string, unknown>) => ({
ok: true,
params,
}));
});
it("normalizes optional search parameters before invoking Firecrawl", async () => {
const { createFirecrawlSearchTool } = await import("./firecrawl-search-tool.js");
const tool = createFirecrawlSearchTool({
config: { env: "test" },
} as never);
const result = await tool.execute("call-1", {
query: "web search",
count: 6,
timeoutSeconds: 12,
sources: ["web", "", "news"],
categories: ["research", ""],
scrapeResults: true,
});
expect(runFirecrawlSearch).toHaveBeenCalledWith({
cfg: { env: "test" },
query: "web search",
count: 6,
timeoutSeconds: 12,
sources: ["web", "news"],
categories: ["research"],
scrapeResults: true,
});
expect(result).toMatchObject({
details: {
ok: true,
params: {
cfg: { env: "test" },
query: "web search",
count: 6,
timeoutSeconds: 12,
sources: ["web", "news"],
categories: ["research"],
scrapeResults: true,
},
},
});
});
});