@@ -12,6 +12,7 @@ import (
12
12
13
13
"cdr.dev/slog/sloggers/slogtest"
14
14
15
+ "github.com/coder/coder/v2/coderd/cryptokeys"
15
16
"github.com/coder/coder/v2/codersdk"
16
17
"github.com/coder/coder/v2/enterprise/wsproxy"
17
18
"github.com/coder/coder/v2/enterprise/wsproxy/wsproxysdk"
@@ -61,7 +62,7 @@ func TestCryptoKeyCache(t *testing.T) {
61
62
cache , err := wsproxy .NewCryptoKeyCache (ctx , logger , wsproxysdk .New (fc .url ), withClock (clock ))
62
63
require .NoError (t , err )
63
64
64
- got , err := cache .Latest (ctx )
65
+ got , err := cache .Signing (ctx )
65
66
require .NoError (t , err )
66
67
require .Equal (t , expected , got )
67
68
require .Equal (t , 1 , fc .called )
@@ -88,14 +89,14 @@ func TestCryptoKeyCache(t *testing.T) {
88
89
}
89
90
fc .keys = []codersdk.CryptoKey {expected }
90
91
91
- got , err := cache .Latest (ctx )
92
+ got , err := cache .Signing (ctx )
92
93
require .NoError (t , err )
93
94
require .Equal (t , expected , got )
94
95
// 1 on startup + missing cache.
95
96
require .Equal (t , 2 , fc .called )
96
97
97
98
// Ensure the cache gets hit this time.
98
- got , err = cache .Latest (ctx )
99
+ got , err = cache .Signing (ctx )
99
100
require .NoError (t , err )
100
101
require .Equal (t , expected , got )
101
102
// 1 on startup + missing cache.
@@ -132,7 +133,7 @@ func TestCryptoKeyCache(t *testing.T) {
132
133
cache , err := wsproxy .NewCryptoKeyCache (ctx , logger , wsproxysdk .New (fc .url ), withClock (clock ))
133
134
require .NoError (t , err )
134
135
135
- got , err := cache .Latest (ctx )
136
+ got , err := cache .Signing (ctx )
136
137
require .NoError (t , err )
137
138
require .Equal (t , expected , got )
138
139
require .Equal (t , 1 , fc .called )
@@ -171,7 +172,7 @@ func TestCryptoKeyCache(t *testing.T) {
171
172
cache , err := wsproxy .NewCryptoKeyCache (ctx , logger , wsproxysdk .New (fc .url ), withClock (clock ))
172
173
require .NoError (t , err )
173
174
174
- got , err := cache .Version (ctx , expected .Sequence )
175
+ got , err := cache .Verifying (ctx , expected .Sequence )
175
176
require .NoError (t , err )
176
177
require .Equal (t , expected , got )
177
178
require .Equal (t , 1 , fc .called )
@@ -198,13 +199,13 @@ func TestCryptoKeyCache(t *testing.T) {
198
199
}
199
200
fc .keys = []codersdk.CryptoKey {expected }
200
201
201
- got , err := cache .Version (ctx , expected .Sequence )
202
+ got , err := cache .Verifying (ctx , expected .Sequence )
202
203
require .NoError (t , err )
203
204
require .Equal (t , expected , got )
204
205
require .Equal (t , 2 , fc .called )
205
206
206
207
// Ensure the cache gets hit this time.
207
- got , err = cache .Version (ctx , expected .Sequence )
208
+ got , err = cache .Verifying (ctx , expected .Sequence )
208
209
require .NoError (t , err )
209
210
require .Equal (t , expected , got )
210
211
require .Equal (t , 2 , fc .called )
@@ -234,7 +235,7 @@ func TestCryptoKeyCache(t *testing.T) {
234
235
cache , err := wsproxy .NewCryptoKeyCache (ctx , logger , wsproxysdk .New (fc .url ), withClock (clock ))
235
236
require .NoError (t , err )
236
237
237
- got , err := cache .Version (ctx , expected .Sequence )
238
+ got , err := cache .Verifying (ctx , expected .Sequence )
238
239
require .NoError (t , err )
239
240
require .Equal (t , expected , got )
240
241
require .Equal (t , 1 , fc .called )
@@ -265,7 +266,7 @@ func TestCryptoKeyCache(t *testing.T) {
265
266
cache , err := wsproxy .NewCryptoKeyCache (ctx , logger , wsproxysdk .New (fc .url ), withClock (clock ))
266
267
require .NoError (t , err )
267
268
268
- _ , err = cache .Version (ctx , expected .Sequence )
269
+ _ , err = cache .Verifying (ctx , expected .Sequence )
269
270
require .Error (t , err )
270
271
require .Equal (t , 1 , fc .called )
271
272
})
@@ -297,7 +298,7 @@ func TestCryptoKeyCache(t *testing.T) {
297
298
cache , err := wsproxy .NewCryptoKeyCache (ctx , logger , wsproxysdk .New (fc .url ), withClock (clock ))
298
299
require .NoError (t , err )
299
300
300
- got , err := cache .Latest (ctx )
301
+ got , err := cache .Signing (ctx )
301
302
require .NoError (t , err )
302
303
require .Equal (t , expected , got )
303
304
require .Equal (t , 1 , fc .called )
@@ -320,15 +321,58 @@ func TestCryptoKeyCache(t *testing.T) {
320
321
require .Equal (t , 2 , fc .called )
321
322
322
323
// Assert hits cache.
323
- got , err = cache .Latest (ctx )
324
+ got , err = cache .Signing (ctx )
324
325
require .NoError (t , err )
325
326
require .Equal (t , newKey , got )
326
327
require .Equal (t , 2 , fc .called )
327
328
328
329
// Assert we do not have the old key.
329
- _ , err = cache .Version (ctx , expected .Sequence )
330
+ _ , err = cache .Verifying (ctx , expected .Sequence )
330
331
require .Error (t , err )
331
332
})
333
+
334
+ t .Run ("Closed" , func (t * testing.T ) {
335
+ t .Parallel ()
336
+
337
+ var (
338
+ ctx = testutil .Context (t , testutil .WaitShort )
339
+ logger = slogtest .Make (t , nil )
340
+ clock = quartz .NewMock (t )
341
+ )
342
+
343
+ now := clock .Now ()
344
+ expected := codersdk.CryptoKey {
345
+ Feature : codersdk .CryptoKeyFeatureWorkspaceApp ,
346
+ Secret : "key1" ,
347
+ Sequence : 12 ,
348
+ StartsAt : now ,
349
+ DeletesAt : now .Add (time .Minute * 10 ),
350
+ }
351
+ fc := newFakeCoderd (t , []codersdk.CryptoKey {
352
+ expected ,
353
+ })
354
+
355
+ cache , err := wsproxy .NewCryptoKeyCache (ctx , logger , wsproxysdk .New (fc .url ), withClock (clock ))
356
+ require .NoError (t , err )
357
+
358
+ got , err := cache .Signing (ctx )
359
+ require .NoError (t , err )
360
+ require .Equal (t , expected , got )
361
+ require .Equal (t , 1 , fc .called )
362
+
363
+ got , err = cache .Verifying (ctx , expected .Sequence )
364
+ require .NoError (t , err )
365
+ require .Equal (t , expected , got )
366
+ require .Equal (t , 1 , fc .called )
367
+
368
+ cache .Close ()
369
+
370
+ _ , err = cache .Signing (ctx )
371
+ require .ErrorIs (t , err , cryptokeys .ErrClosed )
372
+
373
+ _ , err = cache .Verifying (ctx , expected .Sequence )
374
+ require .ErrorIs (t , err , cryptokeys .ErrClosed )
375
+ })
332
376
}
333
377
334
378
type fakeCoderd struct {
0 commit comments