feat: synchronisation mode deconnecte fin chat et stats
This commit is contained in:
156
api/test_chat_temp_id.php
Normal file
156
api/test_chat_temp_id.php
Normal file
@@ -0,0 +1,156 @@
|
||||
<?php
|
||||
/**
|
||||
* Script de test pour vérifier le support des temp_id dans l'API chat
|
||||
*
|
||||
* Usage: php test_chat_temp_id.php
|
||||
*/
|
||||
|
||||
// Configuration
|
||||
$apiUrl = 'http://localhost/api';
|
||||
$sessionId = 'test_session_id'; // À remplacer par un session_id valide
|
||||
|
||||
// Fonction pour faire une requête HTTP
|
||||
function makeRequest($method, $endpoint, $data = null, $sessionId = null) {
|
||||
global $apiUrl;
|
||||
|
||||
$ch = curl_init($apiUrl . $endpoint);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
|
||||
|
||||
$headers = ['Content-Type: application/json'];
|
||||
if ($sessionId) {
|
||||
$headers[] = 'Authorization: Bearer ' . $sessionId;
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||
|
||||
if ($data !== null) {
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
||||
}
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
curl_close($ch);
|
||||
|
||||
return [
|
||||
'code' => $httpCode,
|
||||
'response' => json_decode($response, true)
|
||||
];
|
||||
}
|
||||
|
||||
// Tests
|
||||
echo "=== Tests de support des temp_id dans l'API Chat ===\n\n";
|
||||
|
||||
// Test 1: Création d'une room avec temp_id
|
||||
echo "Test 1: Création d'une room avec temp_id\n";
|
||||
$roomData = [
|
||||
'type' => 'private',
|
||||
'participants' => [2], // ID d'un autre utilisateur
|
||||
'title' => 'Test Room Offline',
|
||||
'temp_id' => 'temp_room_' . uniqid()
|
||||
];
|
||||
|
||||
echo "Requête POST /chat/rooms avec temp_id: {$roomData['temp_id']}\n";
|
||||
$result = makeRequest('POST', '/chat/rooms', $roomData, $sessionId);
|
||||
|
||||
if ($result['code'] === 201 && isset($result['response']['room']['temp_id'])) {
|
||||
echo "✅ Succès: Room créée avec temp_id retourné\n";
|
||||
echo " - ID réel: " . $result['response']['room']['id'] . "\n";
|
||||
echo " - temp_id: " . $result['response']['room']['temp_id'] . "\n";
|
||||
$roomId = $result['response']['room']['id'];
|
||||
} else {
|
||||
echo "❌ Échec: temp_id non retourné dans la réponse\n";
|
||||
echo " Response: " . json_encode($result['response']) . "\n";
|
||||
$roomId = null;
|
||||
}
|
||||
echo "\n";
|
||||
|
||||
// Test 2: Envoi d'un message avec temp_id
|
||||
if ($roomId) {
|
||||
echo "Test 2: Envoi d'un message avec temp_id\n";
|
||||
$messageData = [
|
||||
'content' => 'Message créé hors ligne',
|
||||
'temp_id' => 'temp_msg_' . uniqid()
|
||||
];
|
||||
|
||||
echo "Requête POST /chat/rooms/{$roomId}/messages avec temp_id: {$messageData['temp_id']}\n";
|
||||
$result = makeRequest('POST', "/chat/rooms/{$roomId}/messages", $messageData, $sessionId);
|
||||
|
||||
if ($result['code'] === 201 && isset($result['response']['message']['temp_id'])) {
|
||||
echo "✅ Succès: Message créé avec temp_id retourné\n";
|
||||
echo " - ID réel: " . $result['response']['message']['id'] . "\n";
|
||||
echo " - temp_id: " . $result['response']['message']['temp_id'] . "\n";
|
||||
$messageId = $result['response']['message']['id'];
|
||||
} else {
|
||||
echo "❌ Échec: temp_id non retourné dans la réponse\n";
|
||||
echo " Response: " . json_encode($result['response']) . "\n";
|
||||
$messageId = null;
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
// Test 3: Mise à jour d'une room avec temp_id
|
||||
if ($roomId) {
|
||||
echo "Test 3: Mise à jour d'une room avec temp_id\n";
|
||||
$updateData = [
|
||||
'title' => 'Room mise à jour',
|
||||
'temp_id' => 'temp_update_room_' . uniqid()
|
||||
];
|
||||
|
||||
echo "Requête PUT /chat/rooms/{$roomId} avec temp_id: {$updateData['temp_id']}\n";
|
||||
$result = makeRequest('PUT', "/chat/rooms/{$roomId}", $updateData, $sessionId);
|
||||
|
||||
if ($result['code'] === 200 && isset($result['response']['room']['temp_id'])) {
|
||||
echo "✅ Succès: Room mise à jour avec temp_id retourné\n";
|
||||
echo " - temp_id: " . $result['response']['room']['temp_id'] . "\n";
|
||||
} else {
|
||||
echo "❌ Échec: temp_id non retourné dans la réponse\n";
|
||||
echo " Response: " . json_encode($result['response']) . "\n";
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
// Test 4: Mise à jour d'un message avec temp_id
|
||||
if ($messageId) {
|
||||
echo "Test 4: Mise à jour d'un message avec temp_id\n";
|
||||
$updateData = [
|
||||
'content' => 'Message modifié',
|
||||
'temp_id' => 'temp_update_msg_' . uniqid()
|
||||
];
|
||||
|
||||
echo "Requête PUT /chat/messages/{$messageId} avec temp_id: {$updateData['temp_id']}\n";
|
||||
$result = makeRequest('PUT', "/chat/messages/{$messageId}", $updateData, $sessionId);
|
||||
|
||||
if ($result['code'] === 200 && isset($result['response']['message']['temp_id'])) {
|
||||
echo "✅ Succès: Message mis à jour avec temp_id retourné\n";
|
||||
echo " - temp_id: " . $result['response']['message']['temp_id'] . "\n";
|
||||
} else {
|
||||
echo "❌ Échec: temp_id non retourné dans la réponse\n";
|
||||
echo " Response: " . json_encode($result['response']) . "\n";
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
// Test 5: Création sans temp_id (doit continuer à fonctionner)
|
||||
echo "Test 5: Création d'une room SANS temp_id (compatibilité)\n";
|
||||
$roomData = [
|
||||
'type' => 'private',
|
||||
'participants' => [2],
|
||||
'title' => 'Test Room Normal'
|
||||
];
|
||||
|
||||
echo "Requête POST /chat/rooms sans temp_id\n";
|
||||
$result = makeRequest('POST', '/chat/rooms', $roomData, $sessionId);
|
||||
|
||||
if ($result['code'] === 201 && !isset($result['response']['room']['temp_id'])) {
|
||||
echo "✅ Succès: Room créée normalement sans temp_id\n";
|
||||
echo " - ID: " . $result['response']['room']['id'] . "\n";
|
||||
} else if ($result['code'] === 201) {
|
||||
echo "⚠️ Attention: Room créée mais temp_id présent alors qu'il ne devrait pas\n";
|
||||
} else {
|
||||
echo "❌ Échec: Erreur lors de la création\n";
|
||||
echo " Response: " . json_encode($result['response']) . "\n";
|
||||
}
|
||||
|
||||
echo "\n=== Fin des tests ===\n";
|
||||
echo "\nNote: Assurez-vous d'avoir un session_id valide et que l'API est accessible.\n";
|
||||
echo "Pour obtenir un session_id valide, connectez-vous d'abord via POST /api/login\n";
|
||||
Reference in New Issue
Block a user