@@ -13,72 +13,61 @@ import (
13
13
"github.com/coder/coder/v2/coderd/userpassword"
14
14
)
15
15
16
- func TestUserPassword (t * testing.T ) {
16
+ func TestUserPasswordValidate (t * testing.T ) {
17
17
t .Parallel ()
18
+ tests := []struct {
19
+ name string
20
+ password string
21
+ wantErr bool
22
+ }{
23
+ {"Invalid - Too short password" , "pass" , true },
24
+ {"Invalid - Too long password" , strings .Repeat ("a" , 65 ), true },
25
+ {"Ok" , "CorrectPassword" , false },
26
+ }
27
+
28
+ for _ , tt := range tests {
29
+ t .Run (tt .name , func (t * testing.T ) {
30
+ t .Parallel ()
31
+ err := userpassword .Validate (tt .password )
32
+ if tt .wantErr {
33
+ require .Error (t , err )
34
+ } else {
35
+ require .NoError (t , err )
36
+ }
37
+ })
38
+ }
39
+ }
18
40
19
- t .Run ("Invalid - Too short password" , func (t * testing.T ) {
20
- t .Parallel ()
21
- err := userpassword .Validate ("pass" )
22
- require .Error (t , err )
23
- })
24
-
25
- t .Run ("Invalid - Too long password" , func (t * testing.T ) {
26
- t .Parallel ()
27
-
28
- var sb strings.Builder
29
- for i := 0 ; i < 65 ; i ++ {
30
- sb .WriteString ("a" )
31
- }
32
-
33
- err := userpassword .Validate (sb .String ())
34
- require .Error (t , err )
35
- })
36
-
37
- t .Run ("Ok" , func (t * testing.T ) {
38
- t .Parallel ()
39
-
40
- err := userpassword .Validate ("CorrectPassword" )
41
- require .NoError (t , err )
42
- })
43
-
44
- t .Run ("Legacy" , func (t * testing.T ) {
45
- t .Parallel ()
46
- // Ensures legacy v1 passwords function for v2.
47
- // This has is manually generated using a print statement from v1 code.
48
- equal , err := userpassword .Compare ("$pbkdf2-sha256$65535$z8c1p1C2ru9EImBP1I+ZNA$pNjE3Yk0oG0PmJ0Je+y7ENOVlSkn/b0BEqqdKsq6Y97wQBq0xT+lD5bWJpyIKJqQICuPZcEaGDKrXJn8+SIHRg" , "tomato" )
49
- require .NoError (t , err )
50
- require .True (t , equal )
51
- })
52
-
53
- t .Run ("Same" , func (t * testing.T ) {
54
- t .Parallel ()
55
- hash , err := userpassword .Hash ("password" )
56
- require .NoError (t , err )
57
- equal , err := userpassword .Compare (hash , "password" )
58
- require .NoError (t , err )
59
- require .True (t , equal )
60
- })
61
-
62
- t .Run ("Different" , func (t * testing.T ) {
63
- t .Parallel ()
64
- hash , err := userpassword .Hash ("password" )
65
- require .NoError (t , err )
66
- equal , err := userpassword .Compare (hash , "notpassword" )
67
- require .NoError (t , err )
68
- require .False (t , equal )
69
- })
70
-
71
- t .Run ("Invalid" , func (t * testing.T ) {
72
- t .Parallel ()
73
- equal , err := userpassword .Compare ("invalidhash" , "password" )
74
- require .False (t , equal )
75
- require .Error (t , err )
76
- })
77
-
78
- t .Run ("InvalidParts" , func (t * testing.T ) {
79
- t .Parallel ()
80
- equal , err := userpassword .Compare ("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" , "test" )
81
- require .False (t , equal )
82
- require .Error (t , err )
83
- })
41
+ func TestUserPasswordCompare (t * testing.T ) {
42
+ tests := []struct {
43
+ name string
44
+ hash string
45
+ password string
46
+ wantErr bool
47
+ wantEqual bool
48
+ }{
49
+ {"Legacy" , "$pbkdf2-sha256$65535$z8c1p1C2ru9EImBP1I+ZNA$pNjE3Yk0oG0PmJ0Je+y7ENOVlSkn/b0BEqqdKsq6Y97wQBq0xT+lD5bWJpyIKJqQICuPZcEaGDKrXJn8+SIHRg" , "tomato" , false , true },
50
+ {"Same" , "" , "password" , false , true },
51
+ {"Different" , "" , "password" , false , false },
52
+ {"Invalid" , "invalidhash" , "password" , true , false },
53
+ {"InvalidParts" , "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" , "test" , true , false },
54
+ }
55
+
56
+ for _ , tt := range tests {
57
+ t .Run (tt .name , func (t * testing.T ) {
58
+ t .Parallel ()
59
+ if tt .hash == "" {
60
+ hash , err := userpassword .Hash (tt .password )
61
+ require .NoError (t , err )
62
+ tt .hash = hash
63
+ }
64
+ equal , err := userpassword .Compare (tt .hash , tt .password )
65
+ if tt .wantErr {
66
+ require .Error (t , err )
67
+ } else {
68
+ require .NoError (t , err )
69
+ }
70
+ require .Equal (t , tt .wantEqual , equal )
71
+ })
72
+ }
84
73
}
0 commit comments