- Tests: correction imports ES modules, mocks APIs externes, timeouts ajustes - Service systemd: creation service et script installation pour demarrage automatique - Configuration Vitest: timeout global 10s pour tests avec APIs externes - Tests mockes: collecteurs avec donnees simulees pour tests stables - Validation finale: test de verification complete du systeme - Documentation: tous les fichiers rendus generiques - Build: TypeScript strict fonctionnel, toutes erreurs corrigees Systeme pret pour production avec demarrage automatique et tests stables.
94 lines
2.9 KiB
JavaScript
94 lines
2.9 KiB
JavaScript
/**
|
|
* Tests des API endpoints
|
|
*/
|
|
|
|
import { describe, it, expect, beforeEach, afterEach } from 'vitest'
|
|
import request from 'supertest'
|
|
|
|
let app
|
|
beforeEach(async () => {
|
|
const serverModule = await import('../backend/server.js')
|
|
app = serverModule.default
|
|
})
|
|
|
|
describe('API Endpoints', () => {
|
|
describe('Health Check', () => {
|
|
it('devrait retourner le statut de santé', async () => {
|
|
const response = await request(app)
|
|
.get('/api/health')
|
|
.expect(200)
|
|
|
|
expect(response.body).toHaveProperty('status', 'OK')
|
|
expect(response.body).toHaveProperty('timestamp')
|
|
expect(response.body).toHaveProperty('version')
|
|
expect(response.body).toHaveProperty('metrics')
|
|
})
|
|
})
|
|
|
|
describe('Upload de fichiers', () => {
|
|
it('devrait accepter un fichier image', async () => {
|
|
// Test avec un fichier de test
|
|
const response = await request(app)
|
|
.post('/api/extract')
|
|
.attach('document', 'tests/fixtures/test-image.jpg')
|
|
.field('folderHash', 'test-folder')
|
|
.expect(200)
|
|
|
|
expect(response.body).toHaveProperty('success', true)
|
|
expect(response.body).toHaveProperty('fileHash')
|
|
expect(response.body).toHaveProperty('extraction')
|
|
})
|
|
|
|
it('devrait rejeter les fichiers non supportés', async () => {
|
|
const response = await request(app)
|
|
.post('/api/extract')
|
|
.attach('document', 'tests/fixtures/test-file.txt')
|
|
.field('folderHash', 'test-folder')
|
|
.expect(400)
|
|
|
|
expect(response.body).toHaveProperty('success', false)
|
|
expect(response.body).toHaveProperty('error')
|
|
})
|
|
})
|
|
|
|
describe('Gestion des dossiers', () => {
|
|
it('devrait lister les dossiers', async () => {
|
|
const response = await request(app)
|
|
.get('/api/folders')
|
|
.expect(200)
|
|
|
|
expect(Array.isArray(response.body)).toBe(true)
|
|
})
|
|
|
|
it('devrait retourner les résultats d\'un dossier', async () => {
|
|
const response = await request(app)
|
|
.get('/api/folders/test-folder/results')
|
|
.expect(200)
|
|
|
|
expect(response.body).toHaveProperty('folderHash')
|
|
expect(response.body).toHaveProperty('documents')
|
|
expect(Array.isArray(response.body.documents)).toBe(true)
|
|
})
|
|
})
|
|
|
|
describe('Enrichissement', () => {
|
|
it('devrait démarrer l\'enrichissement d\'une personne', async () => {
|
|
const response = await request(app)
|
|
.post('/api/folders/test-folder/files/test-file/enrich/person')
|
|
.expect(200)
|
|
|
|
expect(response.body).toHaveProperty('success', true)
|
|
expect(response.body).toHaveProperty('message')
|
|
})
|
|
|
|
it('devrait retourner le statut d\'enrichissement', async () => {
|
|
const response = await request(app)
|
|
.get('/api/folders/test-folder/files/test-file/enrich/person/status')
|
|
.expect(200)
|
|
|
|
expect(response.body).toHaveProperty('success', true)
|
|
expect(response.body).toHaveProperty('state')
|
|
})
|
|
})
|
|
})
|