#!/usr/bin/env php $httpCode, 'body' => json_decode($response, true) ?: $response ]; } echo $blue . "=== Test de création d'utilisateur et vérification username ===" . $reset . "\n\n"; // Test 1: Vérification username sans données echo $yellow . "Test 1: POST /api/users/check-username sans données" . $reset . "\n"; $result = testRequest($apiUrl . '/users/check-username', 'POST', [], $sessionId); echo "Code HTTP: " . ($result['code'] == 400 ? $green : $red) . $result['code'] . $reset . "\n"; if (is_array($result['body'])) { echo "Message: " . $result['body']['message'] . "\n"; echo "Field: " . ($result['body']['field'] ?? 'non spécifié') . "\n"; } echo "\n"; // Test 2: Vérification username avec format invalide (trop court) echo $yellow . "Test 2: POST /api/users/check-username avec username trop court" . $reset . "\n"; $result = testRequest($apiUrl . '/users/check-username', 'POST', ['username' => 'abc'], $sessionId); echo "Code HTTP: " . ($result['code'] == 400 ? $green : $red) . $result['code'] . $reset . "\n"; if (is_array($result['body'])) { echo "Message: " . $result['body']['message'] . "\n"; echo "Format attendu: " . ($result['body']['format'] ?? 'non spécifié') . "\n"; } echo "\n"; // Test 3: Vérification username avec format invalide (commence par un chiffre) echo $yellow . "Test 3: POST /api/users/check-username avec username commençant par un chiffre" . $reset . "\n"; $result = testRequest($apiUrl . '/users/check-username', 'POST', ['username' => '123test.user'], $sessionId); echo "Code HTTP: " . ($result['code'] == 400 ? $green : $red) . $result['code'] . $reset . "\n"; if (is_array($result['body'])) { echo "Message: " . $result['body']['message'] . "\n"; echo "Valeur testée: " . ($result['body']['value'] ?? 'non spécifié') . "\n"; } echo "\n"; // Test 4: Vérification username valide echo $yellow . "Test 4: POST /api/users/check-username avec username valide" . $reset . "\n"; $result = testRequest($apiUrl . '/users/check-username', 'POST', ['username' => 'test.user123'], $sessionId); echo "Code HTTP: " . ($result['code'] == 200 ? $green : $red) . $result['code'] . $reset . "\n"; if (is_array($result['body'])) { echo "Disponible: " . ($result['body']['available'] ? 'Oui' : 'Non') . "\n"; echo "Message: " . $result['body']['message'] . "\n"; } echo "\n"; // Test 5: Création utilisateur sans email echo $yellow . "Test 5: POST /api/users sans email" . $reset . "\n"; $result = testRequest($apiUrl . '/users', 'POST', [ 'name' => 'Test User', 'fk_entite' => 1 ], $sessionId); echo "Code HTTP: " . ($result['code'] == 400 ? $green : $red) . $result['code'] . $reset . "\n"; if (is_array($result['body'])) { echo "Message: " . $result['body']['message'] . "\n"; echo "Field: " . ($result['body']['field'] ?? 'non spécifié') . "\n"; } echo "\n"; // Test 6: Création utilisateur sans nom echo $yellow . "Test 6: POST /api/users sans nom" . $reset . "\n"; $result = testRequest($apiUrl . '/users', 'POST', [ 'email' => 'test@example.com', 'fk_entite' => 1 ], $sessionId); echo "Code HTTP: " . ($result['code'] == 400 ? $green : $red) . $result['code'] . $reset . "\n"; if (is_array($result['body'])) { echo "Message: " . $result['body']['message'] . "\n"; echo "Field: " . ($result['body']['field'] ?? 'non spécifié') . "\n"; } echo "\n"; // Test 7: Création utilisateur avec email invalide echo $yellow . "Test 7: POST /api/users avec email invalide" . $reset . "\n"; $result = testRequest($apiUrl . '/users', 'POST', [ 'email' => 'invalid-email', 'name' => 'Test User', 'fk_entite' => 1 ], $sessionId); echo "Code HTTP: " . ($result['code'] == 400 ? $green : $red) . $result['code'] . $reset . "\n"; if (is_array($result['body'])) { echo "Message: " . $result['body']['message'] . "\n"; echo "Field: " . ($result['body']['field'] ?? 'non spécifié') . "\n"; echo "Valeur testée: " . ($result['body']['value'] ?? 'non spécifié') . "\n"; } echo "\n"; // Test 8: Création utilisateur pour entité avec username manuel mais sans username echo $yellow . "Test 8: POST /api/users pour entité avec chk_username_manuel=1 sans username" . $reset . "\n"; $result = testRequest($apiUrl . '/users', 'POST', [ 'email' => 'test@example.com', 'name' => 'Test User', 'fk_entite' => 5 // Supposons que l'entité 5 a chk_username_manuel=1 ], $sessionId); echo "Code HTTP: " . $result['code'] . "\n"; if (is_array($result['body'])) { echo "Message: " . $result['body']['message'] . "\n"; echo "Field: " . ($result['body']['field'] ?? 'non spécifié') . "\n"; echo "Reason: " . ($result['body']['reason'] ?? 'non spécifié') . "\n"; } echo "\n"; echo $blue . "=== Fin des tests ===" . $reset . "\n"; echo "\nRappel: Pour que ces tests fonctionnent, vous devez:\n"; echo "1. Avoir un serveur local en cours d'exécution\n"; echo "2. Remplir la variable \$sessionId avec un token de session valide\n"; echo "3. Vérifier les logs dans /logs/ pour voir les détails\n";