package auth import ( "errors" "strings" "testing" ) func TestValidatePassword(t *testing.T) { cases := []struct { name string pw string want error }{ {"нормальный", "Password123", nil}, {"ровно минимум (10)", "abcdefg123", nil}, {"с кириллицей", "пароль1234", nil}, {"слишком короткий", "Password1", ErrPasswordShort}, {"ровно 9", "short1234"[:9], ErrPasswordShort}, {"пустой", "", ErrPasswordShort}, {"только буквы", "verylongpassword", ErrPasswordWeak}, {"только цифры", "1234567890", ErrPasswordWeak}, {"без цифры в середине", "abcdefghij1", nil}, {"длиннее 72 байт", strings.Repeat("a1", 40), ErrPasswordLong}, } for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { err := ValidatePassword(tc.pw) if !errors.Is(err, tc.want) { t.Errorf("ValidatePassword(%q) = %v, want %v", tc.pw, err, tc.want) } }) } }