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 SaasIsolationContractTests(unittest.TestCase):
    def test_platform_admin_does_not_default_to_business_tenant(self) -> None:
        security = source("backend/app/core/security.py")

        self.assertIn('PLATFORM_TENANT_CODE = os.getenv("PLATFORM_TENANT_CODE", "platform")', security)
        self.assertIn("tenant.company_code != PLATFORM_TENANT_CODE", security)

    def test_public_system_settings_can_be_loaded_by_company_code(self) -> None:
        config_api = source("backend/app/api/config.py")
        frontend_api = source("frontend/src/api/config.js")
        login = source("frontend/src/pages/LoginPage.vue")

        self.assertIn("company_code: str | None = Query(None)", config_api)
        self.assertIn("select(Tenant).where(Tenant.company_code == company_code.strip().lower())", config_api)
        self.assertIn("getSystem: (companyCode) =>", frontend_api)
        self.assertIn("company_code: companyCode", frontend_api)
        self.assertIn("configApi.getSystem(companyCode.value)", login)


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