from pathlib import Path import json import unittest ROOT = Path(__file__).parents[2] class ReferralPageContractTest(unittest.TestCase): def test_referral_confirmation_page_is_registered_and_user_only(self): app = json.loads((ROOT / "miniapp/app.json").read_text(encoding="utf-8")) self.assertIn("pages/referral-confirmation/referral-confirmation", app["pages"]) page = ROOT / "miniapp/pages/referral-confirmation/referral-confirmation.js" source = page.read_text(encoding="utf-8") self.assertIn("getMyReferralHistory", source) self.assertIn("confirmReferral", source) self.assertIn("load()", source) self.assertNotIn("operatorToken", source) service_source = (ROOT / "miniapp/services/referralService.js").read_text(encoding="utf-8") self.assertIn("referral-confirm:${targetId}:${targetType}", service_source) def test_referral_page_does_not_offer_operator_actions_or_sensitive_fields(self): source = (ROOT / "miniapp/pages/referral-confirmation/referral-confirmation.wxml").read_text(encoding="utf-8") self.assertNotIn("代用户", source) self.assertNotIn("手机号", source) self.assertNotIn("身份证", source) self.assertIn("确认转介", source) if __name__ == "__main__": unittest.main()