"""test_llm_router.py - Tests for LLMRouter"""

import sys
from pathlib import Path

PROJECT_ROOT = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(PROJECT_ROOT))

from llm_router import LLMRouter

def test_load_config():
    print("\n=== Test: load config ===")
    router = LLMRouter()
    if len(router.models) > 0:
        print(f"PASS: Loaded {len(router.models)} models")
        return True
    print("FAIL: No models loaded")
    return False

def test_get_enabled():
    print("\n=== Test: get enabled ===")
    router = LLMRouter()
    enabled = router.get_enabled_models()
    if any(m['alias'] == 'gemini-pro' for m in enabled):
        print("PASS: gemini-pro enabled")
        return True
    print("FAIL: gemini-pro not enabled")
    return False

def test_fallback():
    print("\n=== Test: fallback chain ===")
    router = LLMRouter()
    if len(router.fallback_chain) > 0:
        print(f"PASS: {len(router.fallback_chain)} in fallback")
        return True
    print("FAIL: Empty fallback")
    return False

if __name__ == '__main__':
    print("=" * 60)
    print("LLMRouter Tests")
    print("=" * 60)
    
    tests = [test_load_config, test_get_enabled, test_fallback]
    results = [t() for t in tests]
    
    print("\n" + "=" * 60)
    print(f"Results: {sum(results)}/{len(results)} passed")
    print("=" * 60)
    sys.exit(0 if all(results) else 1)
