import unittest
from pathlib import Path


ROOT = Path(__file__).resolve().parents[2]


def source(path: str) -> str:
    return (ROOT / path).read_text(encoding="utf-8")


class RuntimeConfigIntegrationTests(unittest.TestCase):
    def test_ai_service_reads_runtime_config(self) -> None:
        ai_service = source("backend/app/services/ai_service.py")

        self.assertIn("get_ai_config", ai_service)
        self.assertNotIn('AI_API_KEY = os.getenv("AI_API_KEY"', ai_service)

    def test_telegram_config_includes_chat_id(self) -> None:
        config_core = source("backend/app/core/config.py")
        config_api = source("backend/app/api/config.py")

        self.assertIn('"chat_id": get_config_value("telegram_chat_id")', config_core)
        self.assertIn("chat_id: str | None = None", config_api)

    def test_backend_exposes_smtp_test_and_ai_config_routes(self) -> None:
        config_api = source("backend/app/api/config.py")

        self.assertIn('"/smtp/test"', config_api)
        self.assertIn("AIConfigResponse", config_api)
        self.assertIn('"/ai"', config_api)


if __name__ == "__main__":
    unittest.main()
