Some checks failed
Build docker and publish / build (20.15.1) (push) Failing after 8m1s
95 lines
2.4 KiB
Go
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)
|
|
}
|