32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
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()
|