{
    "timestamp": "2025-09-10 02:15:43",
    "total_tests": 41,
    "passed": 37,
    "failed": 4,
    "success_rate": 90.2439024390244,
    "execution_time": 0.07543015480041504,
    "test_output": [
        "[PASS] Database Models: Database tables exist",
        "[PASS] Database Models: Model classes exist",
        "[PASS] Database Models: Model file structure",
        "[PASS] OAuth Integration: OAuth library exists",
        "[PASS] OAuth Integration: Token manager exists",
        "[PASS] OAuth Integration: OAuth class structure",
        "[PASS] OAuth Integration: Token manager class structure",
        "[PASS] OAuth Integration: OAuth controller exists",
        "[PASS] API Client: API client library exists",
        "[FAIL] API Client: API client class structure",
        "[PASS] API Client: API endpoints configuration",
        "[PASS] API Client: Error handler exists",
        "[PASS] Sync Services: ClientSyncService exists",
        "[PASS] Sync Services: InvoiceSyncService exists",
        "[PASS] Sync Services: EstimateSyncService exists",
        "[PASS] Sync Services: ProductSyncService exists",
        "[PASS] Sync Services: Entity mapping service exists",
        "[FAIL] Sync Services: Sync service structure",
        "[PASS] Admin Interface: AdminController exists",
        "[PASS] Admin Interface: DashboardController exists",
        "[PASS] Admin Interface: MappingController exists",
        "[PASS] Admin Interface: LogsController exists",
        "[PASS] Admin Interface: QueueController exists",
        "[PASS] Admin Interface: Admin views exist",
        "[PASS] Admin Interface: Assets directory exists",
        "[PASS] Client Portal: Client portal controller exists",
        "[PASS] Client Portal: Document access control exists",
        "[PASS] Client Portal: Client portal views exist",
        "[PASS] Queue Processing: Queue processor exists",
        "[PASS] Queue Processing: Queue CLI script exists",
        "[PASS] Queue Processing: Retry handler exists",
        "[PASS] Queue Processing: Queue configuration",
        "[PASS] Error Handling: Error handler class exists",
        "[FAIL] Error Handling: Error logging structure",
        "[PASS] Error Handling: Logs directory writable",
        "[PASS] Security: Encryption library exists",
        "[FAIL] Security: Input validation in controllers",
        "[PASS] Security: CSRF protection in views",
        "[PASS] Performance: Rate limiting implementation",
        "[PASS] Performance: Queue performance optimization",
        "[PASS] Performance: Database indexing hints"
    ]
}