Create password_validation_test.go

This commit is contained in:
Srinjoy Sen Chowdhury 2024-08-15 21:09:31 +05:30
parent 18eed12d40
commit 14ad79466b

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