import os
import unittest


os.environ.setdefault("DATABASE_URL", "mysql+pymysql://test:test@127.0.0.1/documenta")
os.environ.setdefault("REDIS_URL", "redis://127.0.0.1:6379/0")
os.environ.setdefault("APP_ENCRYPTION_KEY", "test-encryption-key")
os.environ.setdefault("PII_HMAC_KEY", "test-pii-key")
os.environ.setdefault("ACCESS_TOKEN_HMAC_KEY", "test-access-key")

from app.core.config import get_settings
from app.main import app


class H3MultidomainContractTests(unittest.TestCase):
    def test_transaction_domain_is_canonical_and_portal_is_allowed(self):
        settings = get_settings()
        self.assertEqual(settings.public_base_url, "https://tramites.documenta.cl")
        self.assertEqual(settings.public_portal_url, "https://documenta.cl")
        self.assertIn("https://tramites.documenta.cl", settings.origins)
        self.assertIn("https://documenta.cl", settings.origins)
        self.assertIn("tramites.documenta.cl", settings.hosts)
        self.assertIn("documenta.cl", settings.hosts)

    def test_session_cookie_remains_host_only(self):
        self.assertEqual(get_settings().session_cookie_domain, "")

    def test_canonical_and_legacy_embed_apis_coexist(self):
        paths = {route.path for route in app.routes}
        self.assertIn("/api/v1/embed/entidades/{entidad_uuid}/documentos", paths)
        self.assertIn("/api/v1/embed/notarias/{notaria_uuid}/documentos", paths)


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