diff --git a/apps/js-sdk/firecrawl/src/__tests__/unit/v2/validation.test.ts b/apps/js-sdk/firecrawl/src/__tests__/unit/v2/validation.test.ts index 32aa895e6..ba0b55112 100644 --- a/apps/js-sdk/firecrawl/src/__tests__/unit/v2/validation.test.ts +++ b/apps/js-sdk/firecrawl/src/__tests__/unit/v2/validation.test.ts @@ -9,11 +9,18 @@ describe("v2 utils: validation", () => { expect(() => ensureValidFormats(formats)).toThrow(/json format must be an object/i); }); - test("ensureValidFormats: json format requires prompt and schema", () => { - const bad1: FormatOption[] = [{ type: "json", prompt: "p" } as any]; - const bad2: FormatOption[] = [{ type: "json", schema: {} } as any]; - expect(() => ensureValidFormats(bad1)).toThrow(/requires 'prompt' and 'schema'/i); - expect(() => ensureValidFormats(bad2)).toThrow(/requires 'prompt' and 'schema'/i); + test("ensureValidFormats: json format requires prompt or schema", () => { + // Valid cases - should not throw + const valid1: FormatOption[] = [{ type: "json", prompt: "p" } as any]; + const valid2: FormatOption[] = [{ type: "json", schema: {} } as any]; + const valid3: FormatOption[] = [{ type: "json", prompt: "p", schema: {} } as any]; + expect(() => ensureValidFormats(valid1)).not.toThrow(); + expect(() => ensureValidFormats(valid2)).not.toThrow(); + expect(() => ensureValidFormats(valid3)).not.toThrow(); + + // Invalid case - should throw when both are missing + const bad: FormatOption[] = [{ type: "json" } as any]; + expect(() => ensureValidFormats(bad)).toThrow(/requires either 'prompt' or 'schema'/i); }); test("ensureValidFormats: converts zod schema to JSON schema", () => { diff --git a/apps/python-sdk/firecrawl/__tests__/unit/v2/methods/aio/test_aio_crawl_request_preparation.py b/apps/python-sdk/firecrawl/__tests__/unit/v2/methods/aio/test_aio_crawl_request_preparation.py index 4d49cbb73..45833b5b4 100644 --- a/apps/python-sdk/firecrawl/__tests__/unit/v2/methods/aio/test_aio_crawl_request_preparation.py +++ b/apps/python-sdk/firecrawl/__tests__/unit/v2/methods/aio/test_aio_crawl_request_preparation.py @@ -14,7 +14,7 @@ class TestAsyncCrawlRequestPreparation: include_paths=["/docs/*"], exclude_paths=["/admin/*"], max_discovery_depth=2, - ignore_sitemap=True, + sitemap="skip", ignore_query_parameters=True, crawl_entire_domain=True, allow_external_links=False, @@ -26,7 +26,7 @@ class TestAsyncCrawlRequestPreparation: assert payload["includePaths"] == ["/docs/*"] assert payload["excludePaths"] == ["/admin/*"] assert payload["maxDiscoveryDepth"] == 2 - assert payload["ignoreSitemap"] is True + assert payload["sitemap"] == "skip" assert payload["ignoreQueryParameters"] is True assert payload["crawlEntireDomain"] is True assert payload["allowExternalLinks"] is False diff --git a/apps/python-sdk/firecrawl/__tests__/unit/v2/methods/test_crawl_request_preparation.py b/apps/python-sdk/firecrawl/__tests__/unit/v2/methods/test_crawl_request_preparation.py index 849450fa8..0c6a95ce4 100644 --- a/apps/python-sdk/firecrawl/__tests__/unit/v2/methods/test_crawl_request_preparation.py +++ b/apps/python-sdk/firecrawl/__tests__/unit/v2/methods/test_crawl_request_preparation.py @@ -24,7 +24,7 @@ class TestCrawlRequestPreparation: url="https://example.com", limit=10, max_discovery_depth=3, - ignore_sitemap=True, + sitemap="skip", crawl_entire_domain=False, allow_external_links=True ) @@ -39,8 +39,8 @@ class TestCrawlRequestPreparation: assert data["limit"] == 10 assert "maxDiscoveryDepth" in data assert data["maxDiscoveryDepth"] == 3 - assert "ignoreSitemap" in data - assert data["ignoreSitemap"] is True + assert "sitemap" in data + assert data["sitemap"] == "skip" assert "crawlEntireDomain" in data assert data["crawlEntireDomain"] is False assert "allowExternalLinks" in data @@ -106,7 +106,7 @@ class TestCrawlRequestPreparation: include_paths=["/blog/*", "/docs/*"], exclude_paths=["/admin/*"], max_discovery_depth=3, - ignore_sitemap=False, + sitemap="include", limit=100, crawl_entire_domain=True, allow_external_links=False, @@ -126,8 +126,8 @@ class TestCrawlRequestPreparation: assert data["excludePaths"] == ["/admin/*"] assert "maxDiscoveryDepth" in data assert data["maxDiscoveryDepth"] == 3 - assert "ignoreSitemap" in data - assert data["ignoreSitemap"] is False + assert "sitemap" in data + assert data["sitemap"] == "include" assert "limit" in data assert data["limit"] == 100 assert "crawlEntireDomain" in data