mirror of
				https://github.com/mendableai/firecrawl.git
				synced 2025-10-31 18:14:40 +00:00 
			
		
		
		
	Nick: e2e
This commit is contained in:
		
							parent
							
								
									eae393afb5
								
							
						
					
					
						commit
						25da20efd2
					
				| @ -381,8 +381,45 @@ describe('FirecrawlApp E2E Tests', () => { | ||||
|     expect(filteredLinks?.length).toBeGreaterThan(0); | ||||
|   }, 30000); // 30 seconds timeout
 | ||||
| 
 | ||||
|   test('should throw NotImplementedError for search on v1', async () => { | ||||
|    | ||||
| 
 | ||||
|   test('should search with string query', async () => { | ||||
|     const app = new FirecrawlApp({ apiUrl: API_URL, apiKey: TEST_API_KEY }); | ||||
|     await expect(app.search("test query")).rejects.toThrow("Search is not supported in v1"); | ||||
|     const response = await app.search("firecrawl"); | ||||
|     expect(response.success).toBe(true); | ||||
|     console.log(response.data); | ||||
|     expect(response.data?.length).toBeGreaterThan(0); | ||||
|     expect(response.data?.[0]?.markdown).toBeDefined(); | ||||
|     expect(response.data?.[0]?.metadata).toBeDefined(); | ||||
|     expect(response.data?.[0]?.metadata?.title).toBeDefined(); | ||||
|     expect(response.data?.[0]?.metadata?.description).toBeDefined(); | ||||
|   }); | ||||
| 
 | ||||
|   test('should search with params object', async () => { | ||||
|     const app = new FirecrawlApp({ apiUrl: API_URL, apiKey: TEST_API_KEY }); | ||||
|     const response = await app.search("firecrawl", { | ||||
|       limit: 3, | ||||
|       lang: 'en', | ||||
|       country: 'us', | ||||
|       scrapeOptions: { | ||||
|         formats: ['markdown', 'html', 'links'], | ||||
|         onlyMainContent: true | ||||
|       } | ||||
|     }); | ||||
|     expect(response.success).toBe(true); | ||||
|     expect(response.data.length).toBeLessThanOrEqual(3); | ||||
|     for (const doc of response.data) { | ||||
|       expect(doc.markdown).toBeDefined(); | ||||
|       expect(doc.html).toBeDefined(); | ||||
|       expect(doc.links).toBeDefined(); | ||||
|       expect(doc.metadata).toBeDefined(); | ||||
|       expect(doc.metadata?.title).toBeDefined(); | ||||
|       expect(doc.metadata?.description).toBeDefined(); | ||||
|     } | ||||
|   }); | ||||
| 
 | ||||
|   test('should handle invalid API key for search', async () => { | ||||
|     const app = new FirecrawlApp({ apiUrl: API_URL, apiKey: "invalid_api_key" }); | ||||
|     await expect(app.search("test query")).rejects.toThrow("Request failed with status code 404"); | ||||
|   }); | ||||
| }); | ||||
|  | ||||
| @ -371,4 +371,70 @@ def test_search_e2e(): | ||||
| #     assert isinstance(llm_extraction['supports_sso'], bool) | ||||
| #     assert isinstance(llm_extraction['is_open_source'], bool) | ||||
| 
 | ||||
| def test_search_with_string_query(): | ||||
|     app = FirecrawlApp(api_url=API_URL, api_key=TEST_API_KEY) | ||||
|     response = app.search("firecrawl") | ||||
|     assert response["success"] is True | ||||
|     assert len(response["data"]) > 0 | ||||
|     assert response["data"][0]["markdown"] is not None | ||||
|     assert response["data"][0]["metadata"] is not None | ||||
|     assert response["data"][0]["metadata"]["title"] is not None | ||||
|     assert response["data"][0]["metadata"]["description"] is not None | ||||
| 
 | ||||
| def test_search_with_params_dict(): | ||||
|     app = FirecrawlApp(api_url=API_URL, api_key=TEST_API_KEY) | ||||
|     response = app.search("firecrawl", { | ||||
|         "limit": 3, | ||||
|         "lang": "en", | ||||
|         "country": "us", | ||||
|         "scrapeOptions": { | ||||
|             "formats": ["markdown", "html", "links"], | ||||
|             "onlyMainContent": True | ||||
|         } | ||||
|     }) | ||||
|     assert response["success"] is True | ||||
|     assert len(response["data"]) <= 3 | ||||
|     for doc in response["data"]: | ||||
|         assert doc["markdown"] is not None | ||||
|         assert doc["html"] is not None | ||||
|         assert doc["links"] is not None | ||||
|         assert doc["metadata"] is not None | ||||
|         assert doc["metadata"]["title"] is not None | ||||
|         assert doc["metadata"]["description"] is not None | ||||
| 
 | ||||
| def test_search_with_params_object(): | ||||
|     app = FirecrawlApp(api_url=API_URL, api_key=TEST_API_KEY) | ||||
|     params = SearchParams( | ||||
|         query="firecrawl", | ||||
|         limit=3, | ||||
|         lang="en", | ||||
|         country="us", | ||||
|         scrapeOptions={ | ||||
|             "formats": ["markdown", "html", "links"], | ||||
|             "onlyMainContent": True | ||||
|         } | ||||
|     ) | ||||
|     response = app.search(params.query, params) | ||||
|     assert response["success"] is True | ||||
|     assert len(response["data"]) <= 3 | ||||
|     for doc in response["data"]: | ||||
|         assert doc["markdown"] is not None | ||||
|         assert doc["html"] is not None | ||||
|         assert doc["links"] is not None | ||||
|         assert doc["metadata"] is not None | ||||
|         assert doc["metadata"]["title"] is not None | ||||
|         assert doc["metadata"]["description"] is not None | ||||
| 
 | ||||
| def test_search_invalid_api_key(): | ||||
|     app = FirecrawlApp(api_url=API_URL, api_key="invalid_api_key") | ||||
|     with pytest.raises(Exception) as e: | ||||
|         app.search("test query") | ||||
|     assert "404" in str(e.value) | ||||
| 
 | ||||
| def test_search_with_invalid_params(): | ||||
|     app = FirecrawlApp(api_url=API_URL, api_key=TEST_API_KEY) | ||||
|     with pytest.raises(Exception) as e: | ||||
|         app.search("test query", {"invalid_param": "value"}) | ||||
|     assert "ValidationError" in str(e.value) | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Nicolas
						Nicolas