01887dd571
v2 OrderStatus 三个值(Pending/Paid/Refunded)与 v1 model.OrderStatus 撞名, 统一加 V2 后缀(OrderPendingV2 等)规避包内重名;AttemptStatus/RefundStatus 无此冲突,原样保留。
36 lines
980 B
Go
36 lines
980 B
Go
package model_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/wangjia/pay/internal/model"
|
|
)
|
|
|
|
func TestV2Migrate(t *testing.T) {
|
|
db := model.OpenTestDB(t)
|
|
|
|
o := model.OrderV2{
|
|
OutTradeNo: "PAY-1", MerchantID: 1, BizSystem: "pangolin", BizRef: "u-1",
|
|
ProductID: 3, Subject: "pro-year", AmountMinor: 29990000, Currency: "USDT",
|
|
Status: model.OrderPendingV2,
|
|
}
|
|
if err := db.Create(&o).Error; err != nil {
|
|
t.Fatalf("create order: %v", err)
|
|
}
|
|
a := model.Attempt{
|
|
OutTradeNo: "PAY-1", Channel: "crypto", AccountID: "usdt-a1", ProviderRef: "P-9",
|
|
RenderType: "crypto_address", AmountMinor: 29990000, Currency: "USDT",
|
|
Status: model.AttemptPending,
|
|
}
|
|
if err := db.Create(&a).Error; err != nil {
|
|
t.Fatalf("create attempt: %v", err)
|
|
}
|
|
var got model.OrderV2
|
|
if err := db.Where("out_trade_no = ?", "PAY-1").First(&got).Error; err != nil {
|
|
t.Fatalf("read: %v", err)
|
|
}
|
|
if got.AmountMinor != 29990000 || got.Status != model.OrderPendingV2 {
|
|
t.Fatalf("got %+v", got)
|
|
}
|
|
}
|