test(pay): 补 fake 三态/MockChannelEnabled 装配/devmock 端点/gateway currency_mismatch/限流 bucket 回收
This commit is contained in:
@@ -96,3 +96,54 @@ func TestBuildRegistry(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TestBuildRegistryMockChannelEnabled 覆盖 config.C.MockChannelEnabled=true 时的
|
||||
// fake 装配分支:注册表含 "fake",且其结算币种被设成 ["CNY","USDT"](CNY 排首位,
|
||||
// 对齐 pangolin 下单实际结算币种,见 registry.go 顶部注释)。config.C 是包级全局,
|
||||
// 测试内直接改字段 + defer 复原,避免污染同包/其它包测试的默认值(与
|
||||
// handler 包 ratelimit_test.go / refund_test.go 的 config.C 约定一致)。
|
||||
func TestBuildRegistryMockChannelEnabled(t *testing.T) {
|
||||
prev := config.C.MockChannelEnabled
|
||||
config.C.MockChannelEnabled = true
|
||||
defer func() { config.C.MockChannelEnabled = prev }()
|
||||
|
||||
acctReg := accounts.New(nil)
|
||||
reg := providerbuild.BuildRegistry(acctReg)
|
||||
|
||||
methods := reg.Methods()
|
||||
found := false
|
||||
for _, m := range methods {
|
||||
if m == "fake" {
|
||||
found = true
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
t.Fatalf("MockChannelEnabled=true 时 Methods() 应含 fake, got %v", methods)
|
||||
}
|
||||
|
||||
fp, err := reg.Get("fake")
|
||||
if err != nil {
|
||||
t.Fatalf("Get(fake): %v", err)
|
||||
}
|
||||
caps := fp.Capabilities()
|
||||
if len(caps.SettleCurrencies) == 0 || caps.SettleCurrencies[0] != "CNY" {
|
||||
t.Fatalf("mock 装配应把 fake 结算币种设成 CNY 优先, got %v", caps.SettleCurrencies)
|
||||
}
|
||||
}
|
||||
|
||||
// TestBuildRegistryMockChannelDisabledByDefault 反向覆盖:MockChannelEnabled=false
|
||||
// (生产默认值)时注册表不含 "fake",证明 mock 渠道对生产零影响。
|
||||
func TestBuildRegistryMockChannelDisabledByDefault(t *testing.T) {
|
||||
prev := config.C.MockChannelEnabled
|
||||
config.C.MockChannelEnabled = false
|
||||
defer func() { config.C.MockChannelEnabled = prev }()
|
||||
|
||||
acctReg := accounts.New(nil)
|
||||
reg := providerbuild.BuildRegistry(acctReg)
|
||||
|
||||
for _, m := range reg.Methods() {
|
||||
if m == "fake" {
|
||||
t.Fatalf("MockChannelEnabled=false(默认)时 Methods() 不应含 fake, got %v", reg.Methods())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user