load(); // Load database configuration $dbConfig = require __DIR__ . '/config/database.php'; \App\Database\Database::setConfig($dbConfig); // Initialize database try { $pdo = \App\Database\Database::getInstance(); } catch (Exception $e) { die('Database connection failed: ' . $e->getMessage()); } // Start session if (session_status() === PHP_SESSION_NONE) { session_start(); } // Test authentication service $authService = new \App\Services\AuthService($pdo); echo "Testing login functionality...\n"; // Test 1: Check if admin user exists $user = \App\Models\User::findByUsername($pdo, 'admin'); if (!$user) { echo "ERROR: Admin user not found in database!\n"; exit(1); } echo "✓ Admin user exists in database\n"; // Test 2: Test password verification $userModel = new \App\Models\User($pdo); $userModel->password = $user['password']; $passwordValid = $userModel->verifyPassword('admin123'); if (!$passwordValid) { echo "ERROR: Password verification failed!\n"; exit(1); } echo "✓ Password verification works\n"; // Test 3: Test login method $loginSuccess = $authService->login('admin', 'admin123', '127.0.0.1'); if (!$loginSuccess) { echo "ERROR: Login method failed!\n"; exit(1); } echo "✓ Login method works\n"; // Test 4: Check if user is logged in if (!$authService->isLoggedIn()) { echo "ERROR: User is not logged in after successful login!\n"; exit(1); } echo "✓ User is logged in\n"; // Test 5: Check if user is admin if (!$authService->isAdmin()) { echo "ERROR: User is not recognized as admin!\n"; exit(1); } echo "✓ User is recognized as admin\n"; echo "\n🎉 All authentication tests passed!\n";