



























@@ -29,7 +29,19 @@ describe("exa web search provider", () => {
2929}
3030const applied = contractProvider.applySelectionConfig({});
313132-expect(contractProvider).toMatchObject({
32+expect({
33+id: contractProvider.id,
34+label: contractProvider.label,
35+hint: contractProvider.hint,
36+onboardingScopes: contractProvider.onboardingScopes,
37+credentialLabel: contractProvider.credentialLabel,
38+envVars: contractProvider.envVars,
39+placeholder: contractProvider.placeholder,
40+signupUrl: contractProvider.signupUrl,
41+docsUrl: contractProvider.docsUrl,
42+autoDetectOrder: contractProvider.autoDetectOrder,
43+credentialPath: contractProvider.credentialPath,
44+}).toEqual({
3345id: provider.id,
3446label: provider.label,
3547hint: provider.hint,
@@ -137,8 +149,10 @@ describe("exa web search provider", () => {
137149__testing.parseExaContents({
138150highlights: { numSentences: 0 },
139151}),
140-).toMatchObject({
152+).toEqual({
141153error: "invalid_contents",
154+message: "contents.highlights.numSentences must be a positive integer.",
155+docs: "https://docs.openclaw.ai/tools/web",
142156});
143157});
144158@@ -188,8 +202,11 @@ describe("exa web search provider", () => {
188202date_after: "2026-03-01",
189203});
190204191-expect(result).toMatchObject({
205+expect(result).toEqual({
192206error: "conflicting_time_filters",
207+message:
208+"freshness cannot be combined with date_after or date_before. Use one time-filter mode.",
209+docs: "https://docs.openclaw.ai/tools/web",
193210});
194211});
195212@@ -208,8 +225,10 @@ describe("exa web search provider", () => {
208225date_after: "2026-02-31",
209226});
210227211-expect(result).toMatchObject({
228+expect(result).toEqual({
212229error: "invalid_date",
230+message: "date_after must be YYYY-MM-DD format.",
231+docs: "https://docs.openclaw.ai/tools/web",
213232});
214233});
215234});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。