@@ -352,12 +352,13 @@ func TestExternalAuthLinks(t *testing.T) {
352
352
func TestCryptoKeys (t * testing.T ) {
353
353
t .Parallel ()
354
354
ctx := context .Background ()
355
- db , crypt , ciphers := setup (t )
356
355
357
356
// We don't write a GetCryptoKeyByFeatureAndSequence test
358
357
// because it's basically the same as InsertCryptoKey.
359
358
t .Run ("InsertCryptoKey" , func (t * testing.T ) {
360
359
t .Parallel ()
360
+
361
+ db , crypt , ciphers := setup (t )
361
362
key := dbgen .CryptoKey (t , crypt , database.CryptoKey {
362
363
Secret : sql.NullString {String : "test" , Valid : true },
363
364
})
@@ -371,6 +372,66 @@ func TestCryptoKeys(t *testing.T) {
371
372
require .Equal (t , ciphers [0 ].HexDigest (), key .SecretKeyID .String )
372
373
requireEncryptedEquals (t , ciphers [0 ], key .Secret .String , "test" )
373
374
})
375
+
376
+ t .Run ("GetCryptoKeys" , func (t * testing.T ) {
377
+ t .Parallel ()
378
+ db , crypt , ciphers := setup (t )
379
+ _ = dbgen .CryptoKey (t , crypt , database.CryptoKey {
380
+ Secret : sql.NullString {String : "test" , Valid : true },
381
+ })
382
+ keys , err := crypt .GetCryptoKeys (ctx )
383
+ require .NoError (t , err )
384
+ require .Len (t , keys , 1 )
385
+ require .Equal (t , "test" , keys [0 ].Secret .String )
386
+ require .Equal (t , ciphers [0 ].HexDigest (), keys [0 ].SecretKeyID .String )
387
+
388
+ keys , err = db .GetCryptoKeys (ctx )
389
+ require .NoError (t , err )
390
+ require .Len (t , keys , 1 )
391
+ requireEncryptedEquals (t , ciphers [0 ], keys [0 ].Secret .String , "test" )
392
+ require .Equal (t , ciphers [0 ].HexDigest (), keys [0 ].SecretKeyID .String )
393
+ })
394
+
395
+ t .Run ("GetLatestCryptoKeyByFeature" , func (t * testing.T ) {
396
+ t .Parallel ()
397
+ db , crypt , ciphers := setup (t )
398
+ _ = dbgen .CryptoKey (t , crypt , database.CryptoKey {
399
+ Secret : sql.NullString {String : "test" , Valid : true },
400
+ })
401
+ key , err := crypt .GetLatestCryptoKeyByFeature (ctx , database .CryptoKeyFeatureWorkspaceApps )
402
+ require .NoError (t , err )
403
+ require .Equal (t , "test" , key .Secret .String )
404
+ require .Equal (t , ciphers [0 ].HexDigest (), key .SecretKeyID .String )
405
+
406
+ key , err = db .GetLatestCryptoKeyByFeature (ctx , database .CryptoKeyFeatureWorkspaceApps )
407
+ require .NoError (t , err )
408
+ requireEncryptedEquals (t , ciphers [0 ], key .Secret .String , "test" )
409
+ require .Equal (t , ciphers [0 ].HexDigest (), key .SecretKeyID .String )
410
+ })
411
+
412
+ t .Run ("GetCryptoKeyByFeatureAndSequence" , func (t * testing.T ) {
413
+ t .Parallel ()
414
+ db , crypt , ciphers := setup (t )
415
+ key := dbgen .CryptoKey (t , crypt , database.CryptoKey {
416
+ Secret : sql.NullString {String : "test" , Valid : true },
417
+ })
418
+ key , err := crypt .GetCryptoKeyByFeatureAndSequence (ctx , database.GetCryptoKeyByFeatureAndSequenceParams {
419
+ Feature : database .CryptoKeyFeatureWorkspaceApps ,
420
+ Sequence : key .Sequence ,
421
+ })
422
+ require .NoError (t , err )
423
+ require .Equal (t , "test" , key .Secret .String )
424
+ require .Equal (t , ciphers [0 ].HexDigest (), key .SecretKeyID .String )
425
+
426
+ key , err = db .GetCryptoKeyByFeatureAndSequence (ctx , database.GetCryptoKeyByFeatureAndSequenceParams {
427
+ Feature : database .CryptoKeyFeatureWorkspaceApps ,
428
+ Sequence : key .Sequence ,
429
+ })
430
+ require .NoError (t , err )
431
+ requireEncryptedEquals (t , ciphers [0 ], key .Secret .String , "test" )
432
+ require .Equal (t , ciphers [0 ].HexDigest (), key .SecretKeyID .String )
433
+ })
434
+
374
435
t .Run ("DecryptErr" , func (t * testing.T ) {
375
436
t .Parallel ()
376
437
db , crypt , ciphers := setup (t )
0 commit comments