62 lines
1.5 KiB
Go
62 lines
1.5 KiB
Go
//go:build unit
|
|
|
|
package handler
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/Wei-Shaw/sub2api/internal/payment"
|
|
"github.com/Wei-Shaw/sub2api/internal/service"
|
|
)
|
|
|
|
func TestApplyWeChatPaymentResumeClaims(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
req := CreateOrderRequest{
|
|
Amount: 0,
|
|
PaymentType: payment.TypeWxpay,
|
|
OrderType: payment.OrderTypeBalance,
|
|
}
|
|
|
|
err := applyWeChatPaymentResumeClaims(&req, &service.WeChatPaymentResumeClaims{
|
|
OpenID: "openid-123",
|
|
PaymentType: payment.TypeWxpay,
|
|
Amount: "12.50",
|
|
OrderType: payment.OrderTypeSubscription,
|
|
PlanID: 7,
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("applyWeChatPaymentResumeClaims returned error: %v", err)
|
|
}
|
|
if req.OpenID != "openid-123" {
|
|
t.Fatalf("openid = %q, want %q", req.OpenID, "openid-123")
|
|
}
|
|
if req.Amount != 12.5 {
|
|
t.Fatalf("amount = %v, want 12.5", req.Amount)
|
|
}
|
|
if req.OrderType != payment.OrderTypeSubscription {
|
|
t.Fatalf("order_type = %q, want %q", req.OrderType, payment.OrderTypeSubscription)
|
|
}
|
|
if req.PlanID != 7 {
|
|
t.Fatalf("plan_id = %d, want 7", req.PlanID)
|
|
}
|
|
}
|
|
|
|
func TestApplyWeChatPaymentResumeClaimsRejectsPaymentTypeMismatch(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
req := CreateOrderRequest{
|
|
PaymentType: payment.TypeAlipay,
|
|
}
|
|
|
|
err := applyWeChatPaymentResumeClaims(&req, &service.WeChatPaymentResumeClaims{
|
|
OpenID: "openid-123",
|
|
PaymentType: payment.TypeWxpay,
|
|
Amount: "12.50",
|
|
OrderType: payment.OrderTypeBalance,
|
|
})
|
|
if err == nil {
|
|
t.Fatal("applyWeChatPaymentResumeClaims should reject mismatched payment types")
|
|
}
|
|
}
|