@@ -12,98 +12,101 @@ import (
12
12
"github.com/coder/coder/testutil"
13
13
)
14
14
15
- func TestTokens (t * testing.T ) {
15
+ func TestTokenCRUD (t * testing.T ) {
16
16
t .Parallel ()
17
17
18
- t .Run ("CRUD" , func (t * testing.T ) {
19
- t .Parallel ()
20
-
21
- ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
22
- defer cancel ()
23
- client := coderdtest .New (t , nil )
24
- _ = coderdtest .CreateFirstUser (t , client )
25
- keys , err := client .GetTokens (ctx , codersdk .Me )
26
- require .NoError (t , err )
27
- require .Empty (t , keys )
28
-
29
- res , err := client .CreateToken (ctx , codersdk .Me , codersdk.CreateTokenRequest {})
30
- require .NoError (t , err )
31
- require .Greater (t , len (res .Key ), 2 )
32
-
33
- keys , err = client .GetTokens (ctx , codersdk .Me )
34
- require .NoError (t , err )
35
- require .EqualValues (t , len (keys ), 1 )
36
- require .Contains (t , res .Key , keys [0 ].ID )
37
- // expires_at should default to 30 days
38
- require .Greater (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 29 * 24 ))
39
- require .Less (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 31 * 24 ))
40
- require .Equal (t , codersdk .APIKeyScopeAll , keys [0 ].Scope )
41
-
42
- // no update
43
-
44
- err = client .DeleteAPIKey (ctx , codersdk .Me , keys [0 ].ID )
45
- require .NoError (t , err )
46
- keys , err = client .GetTokens (ctx , codersdk .Me )
47
- require .NoError (t , err )
48
- require .Empty (t , keys )
18
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
19
+ defer cancel ()
20
+ client := coderdtest .New (t , nil )
21
+ _ = coderdtest .CreateFirstUser (t , client )
22
+ keys , err := client .GetTokens (ctx , codersdk .Me )
23
+ require .NoError (t , err )
24
+ require .Empty (t , keys )
25
+
26
+ res , err := client .CreateToken (ctx , codersdk .Me , codersdk.CreateTokenRequest {})
27
+ require .NoError (t , err )
28
+ require .Greater (t , len (res .Key ), 2 )
29
+
30
+ keys , err = client .GetTokens (ctx , codersdk .Me )
31
+ require .NoError (t , err )
32
+ require .EqualValues (t , len (keys ), 1 )
33
+ require .Contains (t , res .Key , keys [0 ].ID )
34
+ // expires_at should default to 30 days
35
+ require .Greater (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 29 * 24 ))
36
+ require .Less (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 31 * 24 ))
37
+ require .Equal (t , codersdk .APIKeyScopeAll , keys [0 ].Scope )
38
+
39
+ // no update
40
+
41
+ err = client .DeleteAPIKey (ctx , codersdk .Me , keys [0 ].ID )
42
+ require .NoError (t , err )
43
+ keys , err = client .GetTokens (ctx , codersdk .Me )
44
+ require .NoError (t , err )
45
+ require .Empty (t , keys )
46
+ }
47
+
48
+ func TestTokenScoped (t * testing.T ) {
49
+ t .Parallel ()
50
+
51
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
52
+ defer cancel ()
53
+ client := coderdtest .New (t , nil )
54
+ _ = coderdtest .CreateFirstUser (t , client )
55
+
56
+ res , err := client .CreateToken (ctx , codersdk .Me , codersdk.CreateTokenRequest {
57
+ Scope : codersdk .APIKeyScopeApplicationConnect ,
49
58
})
59
+ require .NoError (t , err )
60
+ require .Greater (t , len (res .Key ), 2 )
61
+
62
+ keys , err := client .GetTokens (ctx , codersdk .Me )
63
+ require .NoError (t , err )
64
+ require .EqualValues (t , len (keys ), 1 )
65
+ require .Contains (t , res .Key , keys [0 ].ID )
66
+ require .Equal (t , keys [0 ].Scope , codersdk .APIKeyScopeApplicationConnect )
67
+ }
68
+
69
+ func TestTokenDuration (t * testing.T ) {
70
+ t .Parallel ()
50
71
51
- t .Run ("Scoped" , func (t * testing.T ) {
52
- t .Parallel ()
53
-
54
- ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
55
- defer cancel ()
56
- client := coderdtest .New (t , nil )
57
- _ = coderdtest .CreateFirstUser (t , client )
58
-
59
- res , err := client .CreateToken (ctx , codersdk .Me , codersdk.CreateTokenRequest {
60
- Scope : codersdk .APIKeyScopeApplicationConnect ,
61
- })
62
- require .NoError (t , err )
63
- require .Greater (t , len (res .Key ), 2 )
64
-
65
- keys , err := client .GetTokens (ctx , codersdk .Me )
66
- require .NoError (t , err )
67
- require .EqualValues (t , len (keys ), 1 )
68
- require .Contains (t , res .Key , keys [0 ].ID )
69
- require .Equal (t , keys [0 ].Scope , codersdk .APIKeyScopeApplicationConnect )
72
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
73
+ defer cancel ()
74
+ client := coderdtest .New (t , nil )
75
+ _ = coderdtest .CreateFirstUser (t , client )
76
+
77
+ _ , err := client .CreateToken (ctx , codersdk .Me , codersdk.CreateTokenRequest {
78
+ Lifetime : time .Hour * 24 * 7 ,
70
79
})
80
+ require .NoError (t , err )
81
+ keys , err := client .GetTokens (ctx , codersdk .Me )
82
+ require .NoError (t , err )
83
+ require .Greater (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 6 * 24 ))
84
+ require .Less (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 8 * 24 ))
85
+ }
86
+
87
+ func TestTokenMaxLifetime (t * testing.T ) {
88
+ t .Parallel ()
89
+
90
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
91
+ defer cancel ()
92
+ dc := coderdtest .DeploymentConfig (t )
93
+ dc .MaxTokenLifetime .Value = time .Hour * 24 * 7
94
+ client := coderdtest .New (t , & coderdtest.Options {
95
+ DeploymentConfig : dc ,
96
+ })
97
+ _ = coderdtest .CreateFirstUser (t , client )
71
98
72
- t .Run ("Duration" , func (t * testing.T ) {
73
- t .Parallel ()
74
-
75
- ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
76
- defer cancel ()
77
- client := coderdtest .New (t , nil )
78
- _ = coderdtest .CreateFirstUser (t , client )
79
-
80
- _ , err := client .CreateToken (ctx , codersdk .Me , codersdk.CreateTokenRequest {
81
- Lifetime : time .Hour * 24 * 7 ,
82
- })
83
- require .NoError (t , err )
84
- keys , err := client .GetTokens (ctx , codersdk .Me )
85
- require .NoError (t , err )
86
- require .Greater (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 6 * 24 ))
87
- require .Less (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 8 * 24 ))
99
+ // success
100
+ _ , err := client .CreateToken (ctx , codersdk .Me , codersdk.CreateTokenRequest {
101
+ Lifetime : time .Hour * 24 * 6 ,
88
102
})
103
+ require .NoError (t , err )
89
104
90
- t .Run ("MaxLifetime" , func (t * testing.T ) {
91
- t .Parallel ()
92
-
93
- ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
94
- defer cancel ()
95
- client := coderdtest .New (t , nil )
96
- _ = coderdtest .CreateFirstUser (t , client )
97
-
98
- _ , err := client .CreateToken (ctx , codersdk .Me , codersdk.CreateTokenRequest {
99
- Lifetime : time .Hour * 24 * 7 ,
100
- })
101
- require .NoError (t , err )
102
- keys , err := client .GetTokens (ctx , codersdk .Me )
103
- require .NoError (t , err )
104
- require .Greater (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 6 * 24 ))
105
- require .Less (t , keys [0 ].ExpiresAt , time .Now ().Add (time .Hour * 8 * 24 ))
105
+ // fail
106
+ _ , err = client .CreateToken (ctx , codersdk .Me , codersdk.CreateTokenRequest {
107
+ Lifetime : time .Hour * 24 * 8 ,
106
108
})
109
+ require .ErrorContains (t , err , "lifetime must be less" )
107
110
}
108
111
109
112
func TestAPIKey (t * testing.T ) {
0 commit comments