| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- /**
- * Script de test pour l'intégration des services drivers
- * Ce script teste tous les endpoints drivers disponibles
- */
- const API_URL = 'http://localhost:3001/api';
- // Fonction pour simuler l'authentification
- async function getAuthToken() {
- try {
- const response = await fetch(`${API_URL}/auth/login`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json'
- },
- body: JSON.stringify({
- email: 'admin@example.com',
- password: 'password123'
- })
- });
-
- if (response.ok) {
- const data = await response.json();
- return data.token || data.access_token;
- }
- return null;
- } catch (error) {
- console.log('⚠️ Authentification non disponible, test sans token');
- return null;
- }
- }
- // Fonction pour faire des requêtes authentifiées
- async function authenticatedFetch(url, options = {}) {
- const token = await getAuthToken();
-
- const headers = {
- 'Content-Type': 'application/json',
- ...options.headers
- };
-
- if (token) {
- headers['Authorization'] = `Bearer ${token}`;
- }
-
- return fetch(url, {
- ...options,
- headers
- });
- }
- // Test 1: Récupérer tous les drivers
- async function testGetAllDrivers() {
- console.log('\n🧪 Test 1: Récupération de tous les drivers');
- try {
- const response = await authenticatedFetch(`${API_URL}/drivers?page=1&limit=10`);
- const data = await response.json();
-
- if (response.ok) {
- console.log('✅ Succès - Drivers récupérés:', data);
- return data;
- } else {
- console.log('❌ Erreur:', response.status, data);
- return null;
- }
- } catch (error) {
- console.log('❌ Erreur réseau:', error.message);
- return null;
- }
- }
- // Test 2: Récupérer un driver spécifique
- async function testGetDriverById(driverId) {
- console.log(`\n🧪 Test 2: Récupération du driver ID ${driverId}`);
- try {
- const response = await authenticatedFetch(`${API_URL}/drivers/${driverId}`);
- const data = await response.json();
-
- if (response.ok) {
- console.log('✅ Succès - Driver récupéré:', data);
- return data;
- } else {
- console.log('❌ Erreur:', response.status, data);
- return null;
- }
- } catch (error) {
- console.log('❌ Erreur réseau:', error.message);
- return null;
- }
- }
- // Test 3: Récupérer les drivers d'une compagnie
- async function testGetDriversByCompany(companyId) {
- console.log(`\n🧪 Test 3: Récupération des drivers de la compagnie ID ${companyId}`);
- try {
- const response = await authenticatedFetch(`${API_URL}/companies/${companyId}/drivers?page=1&limit=10`);
- const data = await response.json();
-
- if (response.ok) {
- console.log('✅ Succès - Drivers de la compagnie récupérés:', data);
- return data;
- } else {
- console.log('❌ Erreur:', response.status, data);
- return null;
- }
- } catch (error) {
- console.log('❌ Erreur réseau:', error.message);
- return null;
- }
- }
- // Test 4: Créer un nouveau driver
- async function testCreateDriver() {
- console.log('\n🧪 Test 4: Création d\'un nouveau driver');
-
- const newDriver = {
- firstName: 'Test',
- lastName: 'Driver',
- phone: '+33 6 12 34 56 78',
- email: 'test.driver@example.com',
- companyId: 1,
- licenseNumber: 'TEST-12345',
- active: true
- };
-
- try {
- const response = await authenticatedFetch(`${API_URL}/drivers`, {
- method: 'POST',
- body: JSON.stringify(newDriver)
- });
- const data = await response.json();
-
- if (response.ok) {
- console.log('✅ Succès - Driver créé:', data);
- return data;
- } else {
- console.log('❌ Erreur:', response.status, data);
- return null;
- }
- } catch (error) {
- console.log('❌ Erreur réseau:', error.message);
- return null;
- }
- }
- // Test 5: Mettre à jour un driver
- async function testUpdateDriver(driverId) {
- console.log(`\n🧪 Test 5: Mise à jour du driver ID ${driverId}`);
-
- const updateData = {
- firstName: 'Updated',
- lastName: 'Driver',
- phone: '+33 6 98 76 54 32'
- };
-
- try {
- const response = await authenticatedFetch(`${API_URL}/drivers/${driverId}`, {
- method: 'PUT',
- body: JSON.stringify(updateData)
- });
- const data = await response.json();
-
- if (response.ok) {
- console.log('✅ Succès - Driver mis à jour:', data);
- return data;
- } else {
- console.log('❌ Erreur:', response.status, data);
- return null;
- }
- } catch (error) {
- console.log('❌ Erreur réseau:', error.message);
- return null;
- }
- }
- // Test 6: Supprimer un driver
- async function testDeleteDriver(driverId) {
- console.log(`\n🧪 Test 6: Suppression du driver ID ${driverId}`);
-
- try {
- const response = await authenticatedFetch(`${API_URL}/drivers/${driverId}`, {
- method: 'DELETE'
- });
-
- if (response.ok) {
- console.log('✅ Succès - Driver supprimé');
- return true;
- } else {
- const data = await response.json();
- console.log('❌ Erreur:', response.status, data);
- return false;
- }
- } catch (error) {
- console.log('❌ Erreur réseau:', error.message);
- return false;
- }
- }
- // Fonction principale de test
- async function runIntegrationTests() {
- console.log('🚀 Début des tests d\'intégration des services drivers');
- console.log('=' .repeat(60));
-
- // Test de connectivité
- console.log('\n🔗 Test de connectivité avec le backend...');
- try {
- const response = await fetch(`${API_URL}/health`);
- if (response.ok) {
- console.log('✅ Backend accessible');
- } else {
- console.log('⚠️ Backend accessible mais endpoint /health non trouvé');
- }
- } catch (error) {
- console.log('❌ Backend non accessible:', error.message);
- console.log('Assurez-vous que le serveur backend fonctionne sur le port 3001');
- return;
- }
-
- // Exécution des tests
- const allDrivers = await testGetAllDrivers();
-
- // Si on a des drivers, tester avec le premier
- if (allDrivers && allDrivers.data && allDrivers.data.data && allDrivers.data.data.length > 0) {
- const firstDriver = allDrivers.data.data[0];
- await testGetDriverById(firstDriver.id);
-
- if (firstDriver.companyId) {
- await testGetDriversByCompany(firstDriver.companyId);
- }
- }
-
- // Test de création
- const createdDriver = await testCreateDriver();
-
- // Si la création a réussi, tester la mise à jour et la suppression
- if (createdDriver && createdDriver.data) {
- const driverId = createdDriver.data.id;
- await testUpdateDriver(driverId);
- await testDeleteDriver(driverId);
- }
-
- console.log('\n' + '=' .repeat(60));
- console.log('🏁 Tests d\'intégration terminés');
- console.log('\n📋 Résumé:');
- console.log('- Tous les endpoints drivers ont été testés');
- console.log('- L\'authentification est gérée automatiquement');
- console.log('- Les erreurs sont capturées et affichées');
- console.log('\n💡 Pour utiliser dans le frontend:');
- console.log('1. Importez useDriverStore dans vos composants');
- console.log('2. Utilisez driverStore.fetchDrivers() pour charger les données');
- console.log('3. Les méthodes CRUD sont disponibles via le store');
- }
- // Exécution des tests
- runIntegrationTests().catch(console.error);
|