index.ts 829 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { test as baseTest, expect, afterAll } from 'vitest'
  2. import LLMScraper from '../src'
  3. import { openai } from '@ai-sdk/openai'
  4. import { chromium, Browser } from 'playwright'
  5. let browser: Browser | null = null
  6. async function getBrowser() {
  7. if (!browser) {
  8. browser = await chromium.launch()
  9. }
  10. return browser
  11. }
  12. afterAll(async () => {
  13. if (browser) {
  14. await browser.close()
  15. browser = null
  16. }
  17. })
  18. export const test = baseTest.extend<{
  19. page: Awaited<ReturnType<Browser['newPage']>>
  20. scraper: LLMScraper
  21. }>({
  22. page: async ({}, use) => {
  23. const browser = await getBrowser()
  24. const page = await browser.newPage()
  25. await use(page)
  26. await page.close()
  27. },
  28. scraper: async ({}, use) => {
  29. const scraper = new LLMScraper(openai('gpt-4o-mini'))
  30. await use(scraper)
  31. },
  32. })
  33. export { expect }