test-endpoint.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. const fetch = require('node-fetch');
  2. async function testCompanyDriversEndpoint() {
  3. try {
  4. console.log('🧪 Test de l\'endpoint /companies/{id}/drivers');
  5. console.log('='.repeat(50));
  6. // Test avec une compagnie existante (ID 1)
  7. const companyId = 1;
  8. const url = `http://localhost:3000/companies/${companyId}/drivers`;
  9. console.log(`📡 Requête GET: ${url}`);
  10. const response = await fetch(url, {
  11. method: 'GET',
  12. headers: {
  13. 'Content-Type': 'application/json',
  14. // Note: En production, il faudrait ajouter l'authentification
  15. // 'Authorization': 'Bearer YOUR_TOKEN'
  16. }
  17. });
  18. console.log(`📊 Status: ${response.status} ${response.statusText}`);
  19. if (response.ok) {
  20. const data = await response.json();
  21. console.log('✅ Réponse reçue avec succès:');
  22. console.log(JSON.stringify(data, null, 2));
  23. if (data.success && data.data) {
  24. console.log(`\n📈 Résumé:`);
  25. console.log(`- Total de chauffeurs: ${data.data.total}`);
  26. console.log(`- Page actuelle: ${data.data.page}`);
  27. console.log(`- Limite par page: ${data.data.limit}`);
  28. console.log(`- Nombre de chauffeurs retournés: ${data.data.data?.length || 0}`);
  29. }
  30. } else {
  31. const errorData = await response.text();
  32. console.log('❌ Erreur dans la réponse:');
  33. console.log(errorData);
  34. }
  35. } catch (error) {
  36. console.error('💥 Erreur lors du test:', error.message);
  37. if (error.code === 'ECONNREFUSED') {
  38. console.log('🔌 Le serveur backend n\'est pas démarré ou n\'écoute pas sur le port 3000');
  39. }
  40. }
  41. }
  42. // Test avec pagination
  43. async function testWithPagination() {
  44. try {
  45. console.log('\n🧪 Test avec pagination');
  46. console.log('='.repeat(30));
  47. const companyId = 1;
  48. const url = `http://localhost:3000/companies/${companyId}/drivers?page=1&limit=5`;
  49. console.log(`📡 Requête GET: ${url}`);
  50. const response = await fetch(url);
  51. console.log(`📊 Status: ${response.status}`);
  52. if (response.ok) {
  53. const data = await response.json();
  54. console.log('✅ Test pagination réussi');
  55. console.log(`- Limite demandée: 5`);
  56. console.log(`- Chauffeurs retournés: ${data.data?.data?.length || 0}`);
  57. }
  58. } catch (error) {
  59. console.error('❌ Erreur test pagination:', error.message);
  60. }
  61. }
  62. // Test avec compagnie inexistante
  63. async function testNonExistentCompany() {
  64. try {
  65. console.log('\n🧪 Test avec compagnie inexistante');
  66. console.log('='.repeat(40));
  67. const companyId = 99999;
  68. const url = `http://localhost:3000/companies/${companyId}/drivers`;
  69. console.log(`📡 Requête GET: ${url}`);
  70. const response = await fetch(url);
  71. console.log(`📊 Status: ${response.status}`);
  72. if (response.status === 404) {
  73. console.log('✅ Gestion correcte de la compagnie inexistante (404)');
  74. } else {
  75. const data = await response.json();
  76. console.log('📄 Réponse:', JSON.stringify(data, null, 2));
  77. }
  78. } catch (error) {
  79. console.error('❌ Erreur test compagnie inexistante:', error.message);
  80. }
  81. }
  82. // Exécution des tests
  83. async function runAllTests() {
  84. console.log('🚀 Démarrage des tests de l\'endpoint /companies/{id}/drivers\n');
  85. await testCompanyDriversEndpoint();
  86. await testWithPagination();
  87. await testNonExistentCompany();
  88. console.log('\n🏁 Tests terminés');
  89. }
  90. runAllTests();