mcp-server-firecrawl

MIT License
9,757
1,889
  • Apple
  • Linux
import { jest } from '@jest/globals'; import FirecrawlApp from '@mendable/firecrawl-js'; import type { SearchResponse, BatchScrapeResponse, BatchScrapeStatusResponse, FirecrawlDocument, } from '@mendable/firecrawl-js'; // Set test timeout jest.setTimeout(30000); // Create mock responses const mockSearchResponse: SearchResponse = { success: true, data: [ { url: 'https://example.com', title: 'Test Page', description: 'Test Description', markdown: '# Test Content', actions: null as never, }, ] as FirecrawlDocument<undefined, never>[], }; const mockBatchScrapeResponse: BatchScrapeResponse = { success: true, id: 'test-batch-id', }; const mockBatchStatusResponse: BatchScrapeStatusResponse = { success: true, status: 'completed', completed: 1, total: 1, creditsUsed: 1, expiresAt: new Date(), data: [ { url: 'https://example.com', title: 'Test Page', description: 'Test Description', markdown: '# Test Content', actions: null as never, }, ] as FirecrawlDocument<undefined, never>[], }; // Create mock instance methods const mockSearch = jest.fn().mockImplementation(async () => mockSearchResponse); const mockAsyncBatchScrapeUrls = jest .fn() .mockImplementation(async () => mockBatchScrapeResponse); const mockCheckBatchScrapeStatus = jest .fn() .mockImplementation(async () => mockBatchStatusResponse); // Create mock instance const mockInstance = { apiKey: 'test-api-key', apiUrl: 'test-api-url', search: mockSearch, asyncBatchScrapeUrls: mockAsyncBatchScrapeUrls, checkBatchScrapeStatus: mockCheckBatchScrapeStatus, }; // Mock the module jest.mock('@mendable/firecrawl-js', () => ({ __esModule: true, default: jest.fn().mockImplementation(() => mockInstance), }));