test(xai): add live x_search coverage

This commit is contained in:
Peter Steinberger 2026-03-28 20:59:21 +00:00
parent 6e0b67a2fd
commit 1617e0218f
1 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,48 @@
import { describe, expect, it } from "vitest";
import { createXSearchTool } from "./x-search.js";
const liveEnabled =
process.env.OPENCLAW_LIVE_TEST === "1" && (process.env.XAI_API_KEY ?? "").trim().length > 0;
const describeLive = liveEnabled ? describe : describe.skip;
describeLive("xai x_search live", () => {
it("queries X through xAI Responses", async () => {
const tool = createXSearchTool({
config: {
tools: {
web: {
x_search: {
enabled: true,
model: "grok-4-1-fast-non-reasoning",
},
},
},
},
});
expect(tool).toBeTruthy();
const result = await tool!.execute("x-search:live", {
query: "OpenClaw from:steipete",
to_date: "2026-03-28",
});
const details = (result.details ?? {}) as {
provider?: string;
content?: string;
citations?: string[];
inlineCitations?: unknown[];
error?: string;
message?: string;
};
expect(details.error, details.message).toBeUndefined();
expect(details.provider).toBe("xai");
expect(details.content?.trim().length ?? 0).toBeGreaterThan(0);
const citationCount =
(Array.isArray(details.citations) ? details.citations.length : 0) +
(Array.isArray(details.inlineCitations) ? details.inlineCitations.length : 0);
expect(citationCount).toBeGreaterThan(0);
}, 45_000);
});