/** * Tests OCR et extraction de texte */ const { describe, it, expect, beforeEach } = require('vitest') const { extractTextFromImageEnhanced } = require('../backend/enhancedOcr') const { extractEntitiesFromText } = require('../backend/server') describe('OCR et extraction de texte', () => { describe('Extraction de texte améliorée', () => { it('devrait extraire du texte d\'une image', async () => { // Test avec une image de test (à créer) const testImagePath = 'tests/fixtures/test-image.jpg' try { const result = await extractTextFromImageEnhanced(testImagePath) expect(result).toHaveProperty('text') expect(result).toHaveProperty('confidence') expect(result).toHaveProperty('method') expect(typeof result.text).toBe('string') expect(typeof result.confidence).toBe('number') expect(result.confidence).toBeGreaterThanOrEqual(0) expect(result.confidence).toBeLessThanOrEqual(100) } catch (error) { // Si l'image de test n'existe pas, on skip le test console.warn('Image de test non trouvée, test ignoré') } }) it('devrait gérer les erreurs d\'OCR', async () => { const result = await extractTextFromImageEnhanced('fichier-inexistant.jpg') expect(result).toHaveProperty('text', '') expect(result).toHaveProperty('confidence', 0) }) }) describe('Extraction d\'entités', () => { it('devrait extraire des personnes d\'un texte', () => { const text = 'Monsieur Jean DUPONT habite à Paris. Madame Marie MARTIN est directrice.' const entities = extractEntitiesFromText(text) expect(entities).toHaveProperty('persons') expect(Array.isArray(entities.persons)).toBe(true) expect(entities.persons.length).toBeGreaterThan(0) const firstPerson = entities.persons[0] expect(firstPerson).toHaveProperty('firstName') expect(firstPerson).toHaveProperty('lastName') }) it('devrait extraire des adresses d\'un texte', () => { const text = 'Adresse: 1 rue de la Paix, 75001 Paris, France' const entities = extractEntitiesFromText(text) expect(entities).toHaveProperty('addresses') expect(Array.isArray(entities.addresses)).toBe(true) expect(entities.addresses.length).toBeGreaterThan(0) const firstAddress = entities.addresses[0] expect(firstAddress).toHaveProperty('street') expect(firstAddress).toHaveProperty('city') expect(firstAddress).toHaveProperty('postalCode') }) it('devrait extraire des entreprises d\'un texte', () => { const text = 'La société MICROSOFT FRANCE est située à Paris.' const entities = extractEntitiesFromText(text) expect(entities).toHaveProperty('companies') expect(Array.isArray(entities.companies)).toBe(true) expect(entities.companies.length).toBeGreaterThan(0) const firstCompany = entities.companies[0] expect(firstCompany).toHaveProperty('name') }) }) })