Files
tyapi-server/internal/config/config_test.go
2025-07-31 15:41:00 +08:00

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)
}
}