@@ -43,7 +43,7 @@ func TestServerDBCrypt(t *testing.T) {
43
43
db := database .New (sqlDB )
44
44
45
45
// Populate the database with some unencrypted data.
46
- users := genData (t , db , 10 )
46
+ users := genData (t , db )
47
47
dumpUsers (t , sqlDB , "NOT ENCRYPTED" )
48
48
49
49
// Setup an initial cipher A
@@ -56,13 +56,14 @@ func TestServerDBCrypt(t *testing.T) {
56
56
require .NoError (t , err )
57
57
58
58
// Populate the database with some encrypted data using cipher A.
59
- users = append ( users , genData (t , cryptdb , 10 ) ... )
59
+ newUsers := genData (t , cryptdb )
60
60
dumpUsers (t , sqlDB , "PARTIALLY ENCRYPTED A" )
61
61
62
62
// Validate that newly created users were encrypted with cipher A
63
- for _ , usr := range users [ 10 :] {
63
+ for _ , usr := range newUsers {
64
64
requireEncryptedWithCipher (ctx , t , db , cipherA [0 ], usr .ID )
65
65
}
66
+ users = append (users , newUsers ... )
66
67
67
68
// Encrypt all the data with the initial cipher.
68
69
inv , _ := newCLI (t , "server" , "dbcrypt" , "rotate" ,
@@ -86,6 +87,10 @@ func TestServerDBCrypt(t *testing.T) {
86
87
cipherBA , err := dbcrypt .NewCiphers ([]byte (keyB ), []byte (keyA ))
87
88
require .NoError (t , err )
88
89
90
+ // Generate some more encrypted data using the new cipher
91
+ users = append (users , genData (t , db )... )
92
+ dumpUsers (t , sqlDB , "ENCRYPTED AB" )
93
+
89
94
inv , _ = newCLI (t , "server" , "dbcrypt" , "rotate" ,
90
95
"--postgres-url" , connectionURL ,
91
96
"--new-key" , base64 .StdEncoding .EncodeToString ([]byte (keyB )),
@@ -204,38 +209,33 @@ func TestServerDBCrypt(t *testing.T) {
204
209
}
205
210
}
206
211
207
- func genData (t * testing.T , db database.Store , n int ) []database.User {
212
+ func genData (t * testing.T , db database.Store ) []database.User {
208
213
t .Helper ()
209
214
var users []database.User
210
215
// Make some users
211
- for i := 0 ; i < n ; i ++ {
212
- var deleted bool
213
- status := database .UserStatusActive
214
- if i % 2 == 0 {
215
- status = database .UserStatusSuspended
216
- } else if i % 3 == 0 {
217
- status = database .UserStatusDormant
218
- } else if i % 5 == 0 {
219
- deleted = true
216
+ for _ , status := range database .AllUserStatusValues () {
217
+ for _ , loginType := range database .AllLoginTypeValues () {
218
+ for _ , deleted := range []bool {false , true } {
219
+ usr := dbgen .User (t , db , database.User {
220
+ LoginType : loginType ,
221
+ Status : status ,
222
+ Deleted : deleted ,
223
+ })
224
+ _ = dbgen .GitAuthLink (t , db , database.GitAuthLink {
225
+ UserID : usr .ID ,
226
+ ProviderID : "fake" ,
227
+ OAuthAccessToken : "access-" + usr .ID .String (),
228
+ OAuthRefreshToken : "refresh-" + usr .ID .String (),
229
+ })
230
+ _ = dbgen .UserLink (t , db , database.UserLink {
231
+ UserID : usr .ID ,
232
+ LoginType : usr .LoginType ,
233
+ OAuthAccessToken : "access-" + usr .ID .String (),
234
+ OAuthRefreshToken : "refresh-" + usr .ID .String (),
235
+ })
236
+ users = append (users , usr )
237
+ }
220
238
}
221
- usr := dbgen .User (t , db , database.User {
222
- LoginType : database .LoginTypeOIDC ,
223
- Status : status ,
224
- Deleted : deleted ,
225
- })
226
- _ = dbgen .UserLink (t , db , database.UserLink {
227
- UserID : usr .ID ,
228
- LoginType : usr .LoginType ,
229
- OAuthAccessToken : "access-" + usr .ID .String (),
230
- OAuthRefreshToken : "refresh-" + usr .ID .String (),
231
- })
232
- _ = dbgen .GitAuthLink (t , db , database.GitAuthLink {
233
- UserID : usr .ID ,
234
- ProviderID : "fake" ,
235
- OAuthAccessToken : "access-" + usr .ID .String (),
236
- OAuthRefreshToken : "refresh-" + usr .ID .String (),
237
- })
238
- users = append (users , usr )
239
239
}
240
240
return users
241
241
}
@@ -244,6 +244,7 @@ func dumpUsers(t *testing.T, db *sql.DB, header string) {
244
244
t .Logf ("%s %s %s" , strings .Repeat ("=" , 20 ), header , strings .Repeat ("=" , 20 ))
245
245
rows , err := db .QueryContext (context .Background (), `SELECT
246
246
u.id,
247
+ u.login_type,
247
248
u.status,
248
249
u.deleted,
249
250
ul.oauth_access_token_key_id AS uloatkid,
@@ -259,6 +260,7 @@ ORDER BY u.created_at ASC;`)
259
260
for rows .Next () {
260
261
var (
261
262
id string
263
+ loginType string
262
264
status string
263
265
deleted bool
264
266
UlOatKid sql.NullString
@@ -268,15 +270,16 @@ ORDER BY u.created_at ASC;`)
268
270
)
269
271
require .NoError (t , rows .Scan (
270
272
& id ,
273
+ & loginType ,
271
274
& status ,
272
275
& deleted ,
273
276
& UlOatKid ,
274
277
& UlOrtKid ,
275
278
& GalOatKid ,
276
279
& GalOrtKid ,
277
280
))
278
- t .Logf ("user: id:%s status:%-9s deleted:%-5t ul_kids{at:%-7s rt:%-7s} gal_kids{at:%-7s rt:%-7s}" ,
279
- id , status , deleted , UlOatKid .String , UlOrtKid .String , GalOatKid .String , GalOrtKid .String ,
281
+ t .Logf ("user: id:%s login_type:%-8s status:%-9s deleted:%-5t ul_kids{at:%-7s rt:%-7s} gal_kids{at:%-7s rt:%-7s}" ,
282
+ id , loginType , status , deleted , UlOatKid .String , UlOrtKid .String , GalOatKid .String , GalOrtKid .String ,
280
283
)
281
284
}
282
285
}
0 commit comments