Skip to content

Commit 5c1b687

Browse files
committed
robustificate data generation
1 parent 49b9d90 commit 5c1b687

File tree

1 file changed

+36
-33
lines changed

1 file changed

+36
-33
lines changed

enterprise/cli/server_dbcrypt_test.go

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func TestServerDBCrypt(t *testing.T) {
4343
db := database.New(sqlDB)
4444

4545
// Populate the database with some unencrypted data.
46-
users := genData(t, db, 10)
46+
users := genData(t, db)
4747
dumpUsers(t, sqlDB, "NOT ENCRYPTED")
4848

4949
// Setup an initial cipher A
@@ -56,13 +56,14 @@ func TestServerDBCrypt(t *testing.T) {
5656
require.NoError(t, err)
5757

5858
// Populate the database with some encrypted data using cipher A.
59-
users = append(users, genData(t, cryptdb, 10)...)
59+
newUsers := genData(t, cryptdb)
6060
dumpUsers(t, sqlDB, "PARTIALLY ENCRYPTED A")
6161

6262
// Validate that newly created users were encrypted with cipher A
63-
for _, usr := range users[10:] {
63+
for _, usr := range newUsers {
6464
requireEncryptedWithCipher(ctx, t, db, cipherA[0], usr.ID)
6565
}
66+
users = append(users, newUsers...)
6667

6768
// Encrypt all the data with the initial cipher.
6869
inv, _ := newCLI(t, "server", "dbcrypt", "rotate",
@@ -86,6 +87,10 @@ func TestServerDBCrypt(t *testing.T) {
8687
cipherBA, err := dbcrypt.NewCiphers([]byte(keyB), []byte(keyA))
8788
require.NoError(t, err)
8889

90+
// Generate some more encrypted data using the new cipher
91+
users = append(users, genData(t, db)...)
92+
dumpUsers(t, sqlDB, "ENCRYPTED AB")
93+
8994
inv, _ = newCLI(t, "server", "dbcrypt", "rotate",
9095
"--postgres-url", connectionURL,
9196
"--new-key", base64.StdEncoding.EncodeToString([]byte(keyB)),
@@ -204,38 +209,33 @@ func TestServerDBCrypt(t *testing.T) {
204209
}
205210
}
206211

207-
func genData(t *testing.T, db database.Store, n int) []database.User {
212+
func genData(t *testing.T, db database.Store) []database.User {
208213
t.Helper()
209214
var users []database.User
210215
// 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+
}
220238
}
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)
239239
}
240240
return users
241241
}
@@ -244,6 +244,7 @@ func dumpUsers(t *testing.T, db *sql.DB, header string) {
244244
t.Logf("%s %s %s", strings.Repeat("=", 20), header, strings.Repeat("=", 20))
245245
rows, err := db.QueryContext(context.Background(), `SELECT
246246
u.id,
247+
u.login_type,
247248
u.status,
248249
u.deleted,
249250
ul.oauth_access_token_key_id AS uloatkid,
@@ -259,6 +260,7 @@ ORDER BY u.created_at ASC;`)
259260
for rows.Next() {
260261
var (
261262
id string
263+
loginType string
262264
status string
263265
deleted bool
264266
UlOatKid sql.NullString
@@ -268,15 +270,16 @@ ORDER BY u.created_at ASC;`)
268270
)
269271
require.NoError(t, rows.Scan(
270272
&id,
273+
&loginType,
271274
&status,
272275
&deleted,
273276
&UlOatKid,
274277
&UlOrtKid,
275278
&GalOatKid,
276279
&GalOrtKid,
277280
))
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,
280283
)
281284
}
282285
}

0 commit comments

Comments
 (0)