hi-server/initialize/verify_test.go
shanshanzhong 6c370485d1
Some checks failed
Build docker and publish / build (20.15.1) (push) Failing after 8m1s
fix gitea workflow path and runner label
2026-03-04 03:07:41 -08:00

95 lines
2.4 KiB
Go

package initialize
import (
"testing"
"github.com/perfect-panel/server/internal/config"
"github.com/perfect-panel/server/internal/model/system"
"github.com/perfect-panel/server/pkg/tool"
"github.com/stretchr/testify/assert"
)
func TestApplyVerifyCodeDefaults(t *testing.T) {
testCases := []struct {
name string
in config.VerifyCode
want config.VerifyCode
}{
{
name: "apply defaults when all zero",
in: config.VerifyCode{},
want: config.VerifyCode{
VerifyCodeExpireTime: 900,
VerifyCodeLimit: 15,
VerifyCodeInterval: 60,
},
},
{
name: "keep provided values",
in: config.VerifyCode{
VerifyCodeExpireTime: 901,
VerifyCodeLimit: 16,
VerifyCodeInterval: 61,
},
want: config.VerifyCode{
VerifyCodeExpireTime: 901,
VerifyCodeLimit: 16,
VerifyCodeInterval: 61,
},
},
{
name: "fix invalid non-positive values",
in: config.VerifyCode{
VerifyCodeExpireTime: -1,
VerifyCodeLimit: 0,
VerifyCodeInterval: -10,
},
want: config.VerifyCode{
VerifyCodeExpireTime: 900,
VerifyCodeLimit: 15,
VerifyCodeInterval: 60,
},
},
}
for _, testCase := range testCases {
t.Run(testCase.name, func(t *testing.T) {
got := testCase.in
applyVerifyCodeDefaults(&got)
assert.Equal(t, testCase.want, got)
})
}
}
func TestVerifyCodeReflectUsesCanonicalKeys(t *testing.T) {
configs := []*system.System{
{Category: "verify_code", Key: "VerifyCodeExpireTime", Value: "901"},
{Category: "verify_code", Key: "VerifyCodeLimit", Value: "16"},
{Category: "verify_code", Key: "VerifyCodeInterval", Value: "61"},
}
var got config.VerifyCode
tool.SystemConfigSliceReflectToStruct(configs, &got)
applyVerifyCodeDefaults(&got)
assert.Equal(t, int64(901), got.VerifyCodeExpireTime)
assert.Equal(t, int64(16), got.VerifyCodeLimit)
assert.Equal(t, int64(61), got.VerifyCodeInterval)
}
func TestVerifyCodeReflectIgnoresLegacyKeys(t *testing.T) {
configs := []*system.System{
{Category: "verify_code", Key: "ExpireTime", Value: "901"},
{Category: "verify_code", Key: "Limit", Value: "16"},
{Category: "verify_code", Key: "Interval", Value: "61"},
}
var got config.VerifyCode
tool.SystemConfigSliceReflectToStruct(configs, &got)
applyVerifyCodeDefaults(&got)
assert.Equal(t, int64(900), got.VerifyCodeExpireTime)
assert.Equal(t, int64(15), got.VerifyCodeLimit)
assert.Equal(t, int64(60), got.VerifyCodeInterval)
}