修复支付取消与成功统计
This commit is contained in:
@@ -512,3 +512,63 @@ func TestConfirmPaidRollsBackOrderWhenPaymentUpdateFails(t *testing.T) {
|
||||
t.Fatalf("asset status = %q/%q, want rollback to published/published", latestListing.Status, latestAccount.Status)
|
||||
}
|
||||
}
|
||||
|
||||
// TestQueryClosedPaymentReturnsLocalStatus 验证关闭状态不再依赖渠道配置或继续轮询渠道。
|
||||
func TestQueryClosedPaymentReturnsLocalStatus(t *testing.T) {
|
||||
db := setupPaymentTestDB(t)
|
||||
repo := NewRepository(db, nil, nil)
|
||||
payment := model.PaymentOrder{
|
||||
PaymentNo: "PAY20260614CLOSED",
|
||||
OrderID: 9001,
|
||||
OrderNo: "ORD20260614CLOSED",
|
||||
UserID: 8001,
|
||||
Provider: "lakala",
|
||||
ThirdOrderID: "PAY20260614CLOSED",
|
||||
AmountCent: 1000,
|
||||
BizType: "order_pay",
|
||||
Status: "closed",
|
||||
}
|
||||
if err := db.Create(&payment).Error; err != nil {
|
||||
t.Fatalf("create payment failed: %v", err)
|
||||
}
|
||||
|
||||
dto, err := repo.Query(t.Context(), payment.UserID, payment.OrderID)
|
||||
if err != nil {
|
||||
t.Fatalf("Query() error = %v", err)
|
||||
}
|
||||
if dto.Status != "closed" {
|
||||
t.Fatalf("status = %q, want closed", dto.Status)
|
||||
}
|
||||
}
|
||||
|
||||
// TestApplyChannelStatusKeepsTerminalPayment 验证已关闭支付单不会被渠道普通状态重新刷回支付中。
|
||||
func TestApplyChannelStatusKeepsTerminalPayment(t *testing.T) {
|
||||
db := setupPaymentTestDB(t)
|
||||
repo := NewRepository(db, nil, nil)
|
||||
payment := model.PaymentOrder{
|
||||
PaymentNo: "PAY20260614TERMINAL",
|
||||
OrderID: 9002,
|
||||
OrderNo: "ORD20260614TERMINAL",
|
||||
UserID: 8002,
|
||||
Provider: "lakala",
|
||||
ThirdOrderID: "PAY20260614TERMINAL",
|
||||
AmountCent: 1000,
|
||||
BizType: "order_pay",
|
||||
Status: "closed",
|
||||
}
|
||||
if err := db.Create(&payment).Error; err != nil {
|
||||
t.Fatalf("create payment failed: %v", err)
|
||||
}
|
||||
|
||||
if err := repo.applyChannelStatus(t.Context(), &payment, "paying", "", map[string]string{"status": "paying"}, channelSourceNotify); err != nil {
|
||||
t.Fatalf("applyChannelStatus() error = %v", err)
|
||||
}
|
||||
|
||||
var latest model.PaymentOrder
|
||||
if err := db.First(&latest, payment.ID).Error; err != nil {
|
||||
t.Fatalf("find payment failed: %v", err)
|
||||
}
|
||||
if latest.Status != "closed" {
|
||||
t.Fatalf("status = %q, want closed", latest.Status)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user