4NK_IA_front/tests/api.test.js
4NK IA aad52027c1 ci: docker_tag=dev-test
- Alignement backend: seules 4 entités retournées (persons, companies, addresses, contractual)
- Version API mise à jour à 1.0.1 dans /api/health
- Interface onglets d entités: Personnes, Adresses, Entreprises, Contractuel
- Correction erreurs TypeScript pour build stricte
- Tests et documentation mis à jour
- CHANGELOG.md mis à jour avec version 1.1.1
2025-09-18 20:07:08 +00:00

89 lines
2.8 KiB
JavaScript

/**
* Tests des API endpoints
*/
const { describe, it, expect, beforeEach, afterEach } = require('vitest')
const request = require('supertest')
const app = require('../backend/server')
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')
})
})
})