diff --git a/packages/core/test/live/facebook.live.test.ts b/packages/core/test/live/facebook.live.test.ts new file mode 100644 index 0000000..4c5fda7 --- /dev/null +++ b/packages/core/test/live/facebook.live.test.ts @@ -0,0 +1,34 @@ +import { describe, expect, test } from "bun:test"; +import fetchFacebookItems from "../../src/scrapers/facebook"; + +const LIVE_RESULT_LIMIT = 3; +const LIVE_TEST_TIMEOUT_MS = 30_000; + +describe("Facebook live parser", () => { + test( + "scrapes live marketplace search results into listing details", + async () => { + if (!process.env.FACEBOOK_COOKIE?.trim()) { + throw new Error("FACEBOOK_COOKIE is required for Facebook live tests"); + } + + const results = await fetchFacebookItems( + "iphone", + 1, + "toronto", + LIVE_RESULT_LIMIT, + ); + + expect(results.length).toBeGreaterThan(0); + for (const listing of results) { + expect(listing.url).toStartWith( + "https://www.facebook.com/marketplace/item/", + ); + expect(listing.title.length).toBeGreaterThan(0); + expect(listing.listingPrice.cents).toBeGreaterThanOrEqual(0); + expect(listing.listingPrice.currency.length).toBeGreaterThan(0); + } + }, + LIVE_TEST_TIMEOUT_MS, + ); +});