test(pay): 补 fake 三态/MockChannelEnabled 装配/devmock 端点/gateway currency_mismatch/限流 bucket 回收
This commit is contained in:
@@ -34,6 +34,54 @@ func TestFakeCreateAndVerify(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// TestFakeCreateRedirect 覆盖 Create 按 metadata["render"]="redirect" 出的 redirect
|
||||
// 三态分支(pangolin /buy 联调门控,见 fake.go Create 注释)。
|
||||
func TestFakeCreateRedirect(t *testing.T) {
|
||||
p := fake.New()
|
||||
ctx := context.Background()
|
||||
|
||||
sess, err := p.Create(ctx, provider.CreateRequest{
|
||||
OutTradeNo: "PAY-REDIRECT-1", AmountMinor: 100, Currency: "USDT",
|
||||
Metadata: map[string]string{"render": "redirect"},
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("create: %v", err)
|
||||
}
|
||||
if sess.RenderType != provider.RenderRedirect {
|
||||
t.Fatalf("render_type = %v, want redirect", sess.RenderType)
|
||||
}
|
||||
url, _ := sess.Payload["url"].(string)
|
||||
if !strings.Contains(url, "mock-cashier") || !strings.Contains(url, "PAY-REDIRECT-1") {
|
||||
t.Fatalf("payload.url = %q, want 含 mock-cashier 与 out_trade_no", url)
|
||||
}
|
||||
}
|
||||
|
||||
// TestFakeCreateQR 覆盖 metadata["render"]="qr" 分支。
|
||||
func TestFakeCreateQR(t *testing.T) {
|
||||
p := fake.New()
|
||||
ctx := context.Background()
|
||||
|
||||
sess, err := p.Create(ctx, provider.CreateRequest{
|
||||
OutTradeNo: "PAY-QR-1", AmountMinor: 12345, Currency: "CNY",
|
||||
Metadata: map[string]string{"render": "qr"},
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("create: %v", err)
|
||||
}
|
||||
if sess.RenderType != provider.RenderQR {
|
||||
t.Fatalf("render_type = %v, want qr", sess.RenderType)
|
||||
}
|
||||
if _, ok := sess.Payload["qr_content"]; !ok {
|
||||
t.Fatalf("payload 缺 qr_content: %+v", sess.Payload)
|
||||
}
|
||||
if got := sess.Payload["display_amount"]; got != "12345" {
|
||||
t.Fatalf("payload.display_amount = %v, want 12345", got)
|
||||
}
|
||||
if got := sess.Payload["currency"]; got != "CNY" {
|
||||
t.Fatalf("payload.currency = %v, want CNY", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFakeQueryPreset(t *testing.T) {
|
||||
p := fake.New()
|
||||
ctx := context.Background()
|
||||
|
||||
Reference in New Issue
Block a user