package identity import ( "strings" "testing" ) func TestValidatePasswordLengthAndComplexity(t *testing.T) { tests := []struct { name string username string password string want string }{ {name: "six lowercase characters", username: "operator", password: "abcdef"}, {name: "contains username", username: "admin", password: "admin123"}, {name: "six unicode characters", username: "operator", password: "密码密码密码"}, {name: "five characters", username: "operator", password: "Ab123", want: "至少需要 6 个字符"}, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { err := ValidatePassword(test.username, test.password) if test.want == "" { if err != nil { t.Fatalf("ValidatePassword() error = %v", err) } return } if err == nil || !strings.Contains(err.Error(), test.want) { t.Fatalf("ValidatePassword() error = %v, want substring %q", err, test.want) } }) } }