e3f46c3614
Co-authored-by: multica-agent <github@multica.ai>
86 lines
2.2 KiB
Go
86 lines
2.2 KiB
Go
package order
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
modelorder "github.com/perfect-panel/server/internal/model/order"
|
|
modeluser "github.com/perfect-panel/server/internal/model/user"
|
|
)
|
|
|
|
func TestOrderStatusName(t *testing.T) {
|
|
tests := map[uint8]string{
|
|
1: "pending",
|
|
2: "paid",
|
|
3: "closed",
|
|
4: "failed",
|
|
5: "finished",
|
|
6: "refunded",
|
|
7: "unknown",
|
|
}
|
|
|
|
for input, want := range tests {
|
|
if got := orderStatusName(input); got != want {
|
|
t.Fatalf("status %d: got %q want %q", input, got, want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestBuildRefundAuditLog(t *testing.T) {
|
|
logic := &RefundOrderLogic{}
|
|
now := time.Unix(1710000000, 0)
|
|
expireBefore := now.Add(24 * time.Hour)
|
|
expireAfter := now.Add(-time.Second)
|
|
operator := &modeluser.User{
|
|
Id: 100,
|
|
AuthMethods: []modeluser.AuthMethods{
|
|
{AuthIdentifier: "admin@example.com"},
|
|
},
|
|
}
|
|
orderInfo := &modelorder.Order{Id: 10, OrderNo: "ORD-1", Status: orderStatusRefunded}
|
|
userSub := &modeluser.Subscribe{Id: 20, UserId: 30, Status: 3, ExpireTime: expireAfter}
|
|
referer := &modeluser.User{Id: 40}
|
|
|
|
got, err := logic.buildRefundAuditLog(
|
|
operator,
|
|
orderInfo,
|
|
userSub,
|
|
referer,
|
|
500,
|
|
"manual refund",
|
|
5,
|
|
1,
|
|
expireBefore,
|
|
900,
|
|
400,
|
|
now,
|
|
)
|
|
if err != nil {
|
|
t.Fatalf("buildRefundAuditLog error: %v", err)
|
|
}
|
|
if got.OrderId != 10 || got.OrderNo != "ORD-1" {
|
|
t.Fatalf("unexpected order info: %+v", got)
|
|
}
|
|
if got.OperatorUserId != 100 || got.OperatorAuthIdentifier != "admin@example.com" {
|
|
t.Fatalf("unexpected operator info: %+v", got)
|
|
}
|
|
if got.TargetUserId != 30 || got.UserSubscribeId != 20 {
|
|
t.Fatalf("unexpected subscription info: %+v", got)
|
|
}
|
|
if got.RefererUserId != 40 || got.CommissionAmount != 500 {
|
|
t.Fatalf("unexpected commission info: %+v", got)
|
|
}
|
|
if got.OrderStatusBefore != 5 || got.OrderStatusAfter != orderStatusRefunded {
|
|
t.Fatalf("unexpected order status: %+v", got)
|
|
}
|
|
if got.SubscribeStatusBefore != 1 || got.SubscribeStatusAfter != 3 {
|
|
t.Fatalf("unexpected subscribe status: %+v", got)
|
|
}
|
|
if got.SubscribeExpireBefore != expireBefore.UnixMilli() || got.SubscribeExpireAfter != expireAfter.UnixMilli() {
|
|
t.Fatalf("unexpected expire transition: %+v", got)
|
|
}
|
|
if got.CommissionBefore != 900 || got.CommissionAfter != 400 {
|
|
t.Fatalf("unexpected commission transition: %+v", got)
|
|
}
|
|
}
|