it("rejects invalid date ranges for Brave", () => {
expect(normalizeFreshness("2024-13-01to2024-01-31", "brave")).toBeUndefined();
expect(normalizeFreshness("2024-02-30to2024-03-01", "brave")).toBeUndefined();
expect(normalizeFreshness("2024-03-10to2024-03-01", "brave")).toBeUndefined();
});
});
describe("web_search date normalization", () => {
it("accepts ISO format", () => {
expect(normalizeToIsoDate("2024-01-15")).toBe("2024-01-15");
expect(normalizeToIsoDate("2025-12-31")).toBe("2025-12-31");
});
it("accepts Perplexity format and converts to ISO", () => {
expect(normalizeToIsoDate("1/15/2024")).toBe("2024-01-15");
expect(normalizeToIsoDate("12/31/2025")).toBe("2025-12-31");
});
describe("web_search unsupported filter response", () => {
it("returns undefined when no unsupported filter is set", () => {
expect(buildUnsupportedSearchFilterResponse({ query: "openclaw" }, "gemini")).toBeUndefined();
});
it("maps non-date filters to provider-specific unsupported errors", () => {
expect(buildUnsupportedSearchFilterResponse({ country: "us" }, "grok")).toEqual({
error: "unsupported_country",
message: "country filtering is not supported by the grok provider. Only Brave and Perplexity support country filtering.",
docs: "https://docs.openclaw.ai/tools/web",
});
});
it("collapses date filters to unsupported_date_filter", () => {
expect(buildUnsupportedSearchFilterResponse({ date_before: "2026-03-19" }, "kimi")).toEqual({
error: "unsupported_date_filter",
message: "date_after/date_before filtering is not supported by the kimi provider. Only Brave and Perplexity support date filtering.",
docs: "https://docs.openclaw.ai/tools/web",
});
});
});
describe("web_search scoped config merge", () => {
it("returns the original config when no plugin config exists", () => { const searchConfig = { provider: "grok", grok: { model: "grok-4-1-fast" } };
expect(mergeScopedSearchConfig(searchConfig, "grok", undefined)).toBe(searchConfig);
});
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.