| 123456789101112131415161718192021222324252627282930 |
- from datetime import UTC, date, datetime
- from zbt.domains.enrollment.models import Policy
- from zbt.domains.surrender.rules import SurrenderRule
- def test_policy_in_cooling_off_period_is_explained_as_full_refund() -> None:
- policy = Policy(
- id="01KZ0000000000000000000101",
- policy_no="ZBT-P-20260727-0101",
- order_id="01KZ0000000000000000000102",
- user_id="01KZ0000000000000000000103",
- product_id="01KZ0000000000000000000104",
- product_version_id="01KZ0000000000000000000105",
- plan_id="01KZ0000000000000000000106",
- premium_cents=15_900,
- currency="CNY",
- coverage_start=date(2026, 7, 27),
- coverage_end=date(2027, 7, 26),
- status="ACTIVE",
- issued_at=datetime(2026, 7, 26, 8, 0, tzinfo=UTC),
- )
- quote = SurrenderRule().quote(policy, date(2026, 7, 29))
- assert quote.cooling_off is True
- assert quote.refund_amount_cents == 15_900
- assert quote.deduction_cents == 0
- assert quote.refund_basis == "COOLING_OFF_FULL_REFUND"
- assert quote.refund_explanation == "保单仍在10天犹豫期内,按已交保费全额退还。"
|