53 lines
1.6 KiB
Go
53 lines
1.6 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestWalletConfig_AlipayRechargeBonus(t *testing.T) {
|
|
// 切换到项目根目录,这样配置加载器就能找到配置文件
|
|
originalWd, err := os.Getwd()
|
|
assert.NoError(t, err)
|
|
|
|
// 切换到项目根目录(从 internal/config 目录向上两级)
|
|
err = os.Chdir("../../")
|
|
assert.NoError(t, err)
|
|
defer os.Chdir(originalWd) // 测试结束后恢复原目录
|
|
|
|
// 加载配置
|
|
cfg, err := LoadConfig()
|
|
assert.NoError(t, err)
|
|
assert.NotNil(t, cfg)
|
|
|
|
// 验证钱包配置
|
|
assert.NotNil(t, cfg.Wallet)
|
|
assert.Greater(t, len(cfg.Wallet.AliPayRechargeBonus), 0, "支付宝充值赠送规则不能为空")
|
|
|
|
// 验证具体的赠送规则
|
|
expectedRules := []struct {
|
|
rechargeAmount float64
|
|
bonusAmount float64
|
|
}{
|
|
{1000.00, 50.00}, // 充1000送50
|
|
{5000.00, 300.00}, // 充5000送300
|
|
{10000.00, 800.00}, // 充10000送800
|
|
}
|
|
|
|
for i, expected := range expectedRules {
|
|
if i < len(cfg.Wallet.AliPayRechargeBonus) {
|
|
rule := cfg.Wallet.AliPayRechargeBonus[i]
|
|
assert.Equal(t, expected.rechargeAmount, rule.RechargeAmount,
|
|
"充值金额不匹配,期望: %f, 实际: %f", expected.rechargeAmount, rule.RechargeAmount)
|
|
assert.Equal(t, expected.bonusAmount, rule.BonusAmount,
|
|
"赠送金额不匹配,期望: %f, 实际: %f", expected.bonusAmount, rule.BonusAmount)
|
|
}
|
|
}
|
|
|
|
t.Logf("钱包配置加载成功,包含 %d 条支付宝充值赠送规则", len(cfg.Wallet.AliPayRechargeBonus))
|
|
for i, rule := range cfg.Wallet.AliPayRechargeBonus {
|
|
t.Logf("规则 %d: 充值 %.2f 元,赠送 %.2f 元", i+1, rule.RechargeAmount, rule.BonusAmount)
|
|
}
|
|
} |