126 lines
3.8 KiB
Bash
126 lines
3.8 KiB
Bash
#!/bin/bash
|
|
|
|
# Test script pour créer un CSV booking via API et vérifier l'envoi d'email
|
|
#
|
|
# Usage: ./test-csv-booking-api.sh
|
|
|
|
echo "🧪 Test de création de CSV Booking avec envoi d'email"
|
|
echo "======================================================"
|
|
echo ""
|
|
|
|
# Configuration
|
|
API_URL="http://localhost:4000/api/v1"
|
|
TEST_EMAIL="transporteur@test.com"
|
|
|
|
# Couleurs
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${YELLOW}📋 Étape 1: Connexion et obtention du token JWT${NC}"
|
|
echo "----------------------------------------------"
|
|
|
|
# Login (utilisez vos credentials de test)
|
|
LOGIN_RESPONSE=$(curl -s -X POST "${API_URL}/auth/login" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"email": "admin@xpeditis.com",
|
|
"password": "admin123"
|
|
}')
|
|
|
|
echo "Response: $LOGIN_RESPONSE"
|
|
|
|
# Extraire le token
|
|
TOKEN=$(echo $LOGIN_RESPONSE | grep -o '"accessToken":"[^"]*"' | cut -d'"' -f4)
|
|
|
|
if [ -z "$TOKEN" ]; then
|
|
echo -e "${RED}❌ Échec de connexion. Vérifiez vos credentials.${NC}"
|
|
echo "Essayez avec d'autres credentials ou créez un utilisateur de test."
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}✅ Token obtenu: ${TOKEN:0:20}...${NC}"
|
|
echo ""
|
|
|
|
echo -e "${YELLOW}📋 Étape 2: Création d'un fichier de test${NC}"
|
|
echo "----------------------------------------------"
|
|
|
|
# Créer un fichier PDF factice
|
|
cat > /tmp/test-bol.txt << EOF
|
|
BILL OF LADING - TEST
|
|
====================
|
|
Booking ID: TEST-$(date +%s)
|
|
Origin: FRPAR
|
|
Destination: USNYC
|
|
Date: $(date)
|
|
|
|
This is a test document.
|
|
EOF
|
|
|
|
echo -e "${GREEN}✅ Fichier de test créé: /tmp/test-bol.txt${NC}"
|
|
echo ""
|
|
|
|
echo -e "${YELLOW}📋 Étape 3: Création du CSV booking${NC}"
|
|
echo "----------------------------------------------"
|
|
echo "Email transporteur: $TEST_EMAIL"
|
|
echo ""
|
|
|
|
# Créer le booking avec curl multipart
|
|
BOOKING_RESPONSE=$(curl -s -X POST "${API_URL}/csv-bookings" \
|
|
-H "Authorization: Bearer ${TOKEN}" \
|
|
-F "carrierName=Test Carrier Ltd" \
|
|
-F "carrierEmail=${TEST_EMAIL}" \
|
|
-F "origin=FRPAR" \
|
|
-F "destination=USNYC" \
|
|
-F "volumeCBM=12.5" \
|
|
-F "weightKG=850" \
|
|
-F "palletCount=4" \
|
|
-F "priceUSD=1800" \
|
|
-F "priceEUR=1650" \
|
|
-F "primaryCurrency=USD" \
|
|
-F "transitDays=16" \
|
|
-F "containerType=20FT" \
|
|
-F "notes=Test booking créé via script automatique" \
|
|
-F "files=@/tmp/test-bol.txt")
|
|
|
|
echo "Response:"
|
|
echo "$BOOKING_RESPONSE" | jq '.' 2>/dev/null || echo "$BOOKING_RESPONSE"
|
|
echo ""
|
|
|
|
# Vérifier si le booking a été créé
|
|
BOOKING_ID=$(echo $BOOKING_RESPONSE | grep -o '"id":"[^"]*"' | head -1 | cut -d'"' -f4)
|
|
|
|
if [ -z "$BOOKING_ID" ]; then
|
|
echo -e "${RED}❌ Échec de création du booking${NC}"
|
|
echo "Vérifiez les logs du backend pour plus de détails."
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}✅ Booking créé avec succès!${NC}"
|
|
echo " Booking ID: $BOOKING_ID"
|
|
echo ""
|
|
|
|
echo -e "${YELLOW}📋 Étape 4: Vérification des logs backend${NC}"
|
|
echo "----------------------------------------------"
|
|
echo "Recherchez dans les logs backend:"
|
|
echo " ✅ Email sent to carrier: ${TEST_EMAIL}"
|
|
echo " ✅ CSV booking request sent to ${TEST_EMAIL}"
|
|
echo ""
|
|
echo "Si vous NE voyez PAS ces logs, l'email n'a PAS été envoyé."
|
|
echo ""
|
|
|
|
echo -e "${YELLOW}📋 Étape 5: Vérifier Mailtrap${NC}"
|
|
echo "----------------------------------------------"
|
|
echo "1. Ouvrez: https://mailtrap.io/inboxes"
|
|
echo "2. Cherchez: 'Nouvelle demande de réservation - FRPAR → USNYC'"
|
|
echo "3. Vérifiez: Le template HTML avec boutons Accepter/Refuser"
|
|
echo ""
|
|
|
|
echo -e "${GREEN}✅ Test terminé${NC}"
|
|
echo "Si vous ne recevez pas l'email:"
|
|
echo " 1. Vérifiez les logs backend (voir ci-dessus)"
|
|
echo " 2. Exécutez: node debug-email-flow.js"
|
|
echo " 3. Vérifiez que le backend a bien redémarré avec la correction"
|
|
echo ""
|