4NK_IA_front/tests/api.test.js
4NK IA 5abe33540e feat: finalisation complete du systeme generique
- 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.
2025-09-18 21:50:26 +00:00

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')
})
})
})