mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-06 22:43:10 -06:00
Create password_validation_test.go
This commit is contained in:
parent
18eed12d40
commit
14ad79466b
33
test/password_validation_test.go
Normal file
33
test/password_validation_test.go
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestValidatePassword(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
password string
|
||||||
|
config PasswordConfig
|
||||||
|
expectErr bool
|
||||||
|
}{
|
||||||
|
// Test cases for length
|
||||||
|
{"short", defaultPasswordConfig, true},
|
||||||
|
{"longEnoughPassword1!", defaultPasswordConfig, false},
|
||||||
|
{string(make([]byte, maxPasswordLength+1)), defaultPasswordConfig, true},
|
||||||
|
|
||||||
|
// Test cases for character requirements
|
||||||
|
{"NoDigitsOrSpecialChars", defaultPasswordConfig, true},
|
||||||
|
{"WithDigits1", defaultPasswordConfig, true},
|
||||||
|
{"WithSpecialChars!", defaultPasswordConfig, true},
|
||||||
|
{"ValidP@ssw0rd", defaultPasswordConfig, false},
|
||||||
|
|
||||||
|
// Custom config examples
|
||||||
|
{"NoSpecialChar123", PasswordConfig{minPasswordLength, maxPasswordLength, true, true, true, false}, false},
|
||||||
|
{"alllowercase1!", PasswordConfig{minPasswordLength, maxPasswordLength, false, true, true, true}, false},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
err := ValidatePassword(tt.password, tt.config)
|
||||||
|
if (err != nil) != tt.expectErr {
|
||||||
|
t.Errorf("ValidatePassword(%s) = %v, expected error = %v", tt.password, err, tt.expectErr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue