Align avatar recharge plan IDs with WeChat virtual products
This commit is contained in:
@@ -57,6 +57,10 @@ def test_seed_synchronizes_requested_recharge_plans():
|
||||
db = SessionLocal()
|
||||
try:
|
||||
plans = db.query(TokenPlan).order_by(TokenPlan.price.asc()).all()
|
||||
assert {plan.id: plan.virtual_product_id for plan in plans} == {
|
||||
"Basic": "Basic", "Standard": "Standard",
|
||||
"Professional": "Professional", "Enterprise": "Enterprise",
|
||||
}
|
||||
assert [(plan.price, plan.amount) for plan in plans] == [
|
||||
(10, 2_000_000),
|
||||
(100, 20_000_000),
|
||||
@@ -67,6 +71,33 @@ def test_seed_synchronizes_requested_recharge_plans():
|
||||
db.close()
|
||||
|
||||
|
||||
def test_seed_preserves_admin_price_and_migrates_old_order_plan_id():
|
||||
seed()
|
||||
db = SessionLocal()
|
||||
order_no = f"TEST-MIGRATION-{uuid.uuid4().hex}"
|
||||
try:
|
||||
plan = db.query(TokenPlan).filter_by(id="Basic").one()
|
||||
original_price = plan.price
|
||||
plan.price = 0.01
|
||||
db.add(TokenPlan(id="1", name="基础套餐", amount=2_000_000, price=10))
|
||||
db.add(TokenPaymentOrder(
|
||||
order_no=order_no, user_id="test-user", plan_id="1",
|
||||
payment_method="wechat", pay_type="WECHAT", pay_way="JSAPI",
|
||||
points_amount=2_000_000, price_cents=1000, status="pending",
|
||||
))
|
||||
db.commit()
|
||||
seed()
|
||||
db.expire_all()
|
||||
assert db.query(TokenPlan).filter_by(id="1").first() is None
|
||||
assert db.query(TokenPlan).filter_by(id="Basic").one().price == 0.01
|
||||
assert db.query(TokenPaymentOrder).filter_by(order_no=order_no).one().plan_id == "Basic"
|
||||
finally:
|
||||
db.query(TokenPaymentOrder).filter_by(order_no=order_no).delete()
|
||||
db.query(TokenPlan).filter_by(id="Basic").update({"price": original_price})
|
||||
db.commit()
|
||||
db.close()
|
||||
|
||||
|
||||
def test_charge_creates_huihui_order_without_early_points(authorization_context):
|
||||
context = authorization_context
|
||||
_enable_huihui_payment_login(context)
|
||||
|
||||
Reference in New Issue
Block a user