| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- const axios = require('axios');
- const BASE_URL = 'http://localhost:3000';
- // Configuration des headers avec un token d'authentification (à adapter selon votre système)
- const headers = {
- 'Content-Type': 'application/json',
- // 'Authorization': 'Bearer YOUR_TOKEN_HERE' // Décommentez et ajoutez votre token si nécessaire
- };
- async function testCloseRegistration() {
- try {
- console.log('🚀 Test de la fonctionnalité de fermeture d\'enregistrement\n');
- // 1. Récupérer la liste des trajets
- console.log('1. Récupération de la liste des trajets...');
- const trajetsResponse = await axios.get(`${BASE_URL}/trajets`, { headers });
- const trajets = trajetsResponse.data;
-
- if (trajets.length === 0) {
- console.log('❌ Aucun trajet trouvé. Créez d\'abord un trajet pour tester.');
- return;
- }
- const trajet = trajets[0];
- console.log(`✅ Trajet trouvé: ID ${trajet.id}, Enregistrement fermé: ${trajet.registrationClosed}`);
- // 2. Tenter de créer une réservation avant fermeture
- console.log('\n2. Test de création de réservation avant fermeture...');
- try {
- const reservationData = {
- trajetId: trajet.id,
- userId: 1, // À adapter selon vos données
- placeId: 1 // À adapter selon vos données
- };
- const reservationResponse = await axios.post(`${BASE_URL}/reservations`, reservationData, { headers });
- console.log('✅ Réservation créée avec succès avant fermeture');
- } catch (error) {
- console.log(`⚠️ Erreur lors de la création de réservation: ${error.response?.data?.message || error.message}`);
- }
- // 3. Fermer l'enregistrement du trajet
- console.log('\n3. Fermeture de l\'enregistrement du trajet...');
- try {
- const closeResponse = await axios.patch(`${BASE_URL}/trajets/${trajet.id}/close-registration`, {}, { headers });
- console.log('✅ Enregistrement fermé avec succès');
- console.log('Réponse:', closeResponse.data);
- } catch (error) {
- console.log(`❌ Erreur lors de la fermeture: ${error.response?.data?.message || error.message}`);
- return;
- }
- // 4. Vérifier que le trajet est marqué comme fermé
- console.log('\n4. Vérification du statut du trajet...');
- const updatedTrajetResponse = await axios.get(`${BASE_URL}/trajets/${trajet.id}`, { headers });
- const updatedTrajet = updatedTrajetResponse.data;
- console.log(`✅ Statut mis à jour: Enregistrement fermé: ${updatedTrajet.registrationClosed}`);
- // 5. Tenter de créer une réservation après fermeture
- console.log('\n5. Test de création de réservation après fermeture...');
- try {
- const reservationData = {
- trajetId: trajet.id,
- userId: 2, // Différent utilisateur
- placeId: 2 // Différente place
- };
- const reservationResponse = await axios.post(`${BASE_URL}/reservations`, reservationData, { headers });
- console.log('❌ ERREUR: La réservation ne devrait pas être possible après fermeture!');
- } catch (error) {
- if (error.response?.status === 400 && error.response?.data?.message?.includes('fermé')) {
- console.log('✅ Réservation correctement bloquée après fermeture');
- console.log(`Message d'erreur: ${error.response.data.message}`);
- } else {
- console.log(`⚠️ Erreur inattendue: ${error.response?.data?.message || error.message}`);
- }
- }
- console.log('\n🎉 Test terminé avec succès!');
- } catch (error) {
- console.error('❌ Erreur générale:', error.message);
- if (error.response) {
- console.error('Détails de l\'erreur:', error.response.data);
- }
- }
- }
- // Exécuter le test
- testCloseRegistration();
|