Skip to content

Commit 396aa4a

Browse files
committed
Refactor prom metrics test
1 parent 50cba39 commit 396aa4a

File tree

2 files changed

+36
-45
lines changed

2 files changed

+36
-45
lines changed

coderd/database/databasefake/generator.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
141141
db := g.db
142142
t := g.testT
143143

144+
output := make(map[string]interface{})
144145
for name, v := range seed {
145146
switch orig := v.(type) {
146147
case database.APIKey:
@@ -164,9 +165,9 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
164165
})
165166
require.NoError(t, err, "insert api key")
166167

167-
seed[name] = key
168+
output[name] = key
168169
// Need to also save the secret
169-
seed[name+"_secret"] = secret
170+
output[name+"_secret"] = secret
170171
case database.Template:
171172
template, err := db.InsertTemplate(ctx, database.InsertTemplateParams{
172173
ID: takeFirst(orig.ID, g.Lookup(name)),
@@ -187,7 +188,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
187188
})
188189
require.NoError(t, err, "insert template")
189190

190-
seed[name] = template
191+
output[name] = template
191192

192193
case database.TemplateVersion:
193194
template, err := db.InsertTemplateVersion(ctx, database.InsertTemplateVersionParams{
@@ -206,7 +207,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
206207
})
207208
require.NoError(t, err, "insert template")
208209

209-
seed[name] = template
210+
output[name] = template
210211
case database.Workspace:
211212
workspace, err := db.InsertWorkspace(ctx, database.InsertWorkspaceParams{
212213
ID: takeFirst(orig.ID, g.Lookup(name)),
@@ -221,7 +222,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
221222
})
222223
require.NoError(t, err, "insert workspace")
223224

224-
seed[name] = workspace
225+
output[name] = workspace
225226
case database.WorkspaceBuild:
226227
build, err := db.InsertWorkspaceBuild(ctx, database.InsertWorkspaceBuildParams{
227228
ID: takeFirst(orig.ID, g.Lookup(name)),
@@ -239,7 +240,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
239240
})
240241
require.NoError(t, err, "insert workspace build")
241242

242-
seed[name] = build
243+
output[name] = build
243244
case database.User:
244245
user, err := db.InsertUser(ctx, database.InsertUserParams{
245246
ID: takeFirst(orig.ID, g.Lookup(name)),
@@ -253,7 +254,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
253254
})
254255
require.NoError(t, err, "insert user")
255256

256-
seed[name] = user
257+
output[name] = user
257258

258259
case database.Organization:
259260
org, err := db.InsertOrganization(ctx, database.InsertOrganizationParams{
@@ -265,7 +266,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
265266
})
266267
require.NoError(t, err, "insert organization")
267268

268-
seed[name] = org
269+
output[name] = org
269270

270271
case database.Group:
271272
org, err := db.InsertGroup(ctx, database.InsertGroupParams{
@@ -277,7 +278,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
277278
})
278279
require.NoError(t, err, "insert organization")
279280

280-
seed[name] = org
281+
output[name] = org
281282

282283
case database.ProvisionerJob:
283284
job, err := db.InsertProvisionerJob(ctx, database.InsertProvisionerJobParams{
@@ -295,7 +296,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
295296
})
296297
require.NoError(t, err, "insert job")
297298

298-
seed[name] = job
299+
output[name] = job
299300

300301
case database.WorkspaceResource:
301302
resource, err := db.InsertWorkspaceResource(ctx, database.InsertWorkspaceResourceParams{
@@ -316,7 +317,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
316317
})
317318
require.NoError(t, err, "insert resource")
318319

319-
seed[name] = resource
320+
output[name] = resource
320321

321322
case database.File:
322323
file, err := db.InsertFile(ctx, database.InsertFileParams{
@@ -329,7 +330,7 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
329330
})
330331
require.NoError(t, err, "insert file")
331332

332-
seed[name] = file
333+
output[name] = file
333334
case database.UserLink:
334335
link, err := db.InsertUserLink(ctx, database.InsertUserLinkParams{
335336
UserID: takeFirst(orig.UserID, uuid.New()),
@@ -342,12 +343,12 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
342343

343344
require.NoError(t, err, "insert link")
344345

345-
seed[name] = link
346+
output[name] = link
346347
default:
347348
panic(fmt.Sprintf("unknown type %T", orig))
348349
}
349350
}
350-
return seed
351+
return output
351352
}
352353

353354
func (g *Generator) Lookup(name string) uuid.UUID {

coderd/prometheusmetrics/prometheusmetrics_test.go

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -23,63 +23,53 @@ func TestActiveUsers(t *testing.T) {
2323

2424
for _, tc := range []struct {
2525
Name string
26-
Database func() database.Store
26+
Database func(t *testing.T) database.Store
2727
Count int
2828
}{{
2929
Name: "None",
30-
Database: func() database.Store {
30+
Database: func(t *testing.T) database.Store {
3131
return databasefake.New()
3232
},
3333
Count: 0,
3434
}, {
3535
Name: "One",
36-
Database: func() database.Store {
36+
Database: func(t *testing.T) database.Store {
3737
db := databasefake.New()
38-
_, _ = db.InsertAPIKey(context.Background(), database.InsertAPIKeyParams{
39-
UserID: uuid.New(),
40-
LastUsed: database.Now(),
41-
LoginType: database.LoginTypePassword,
42-
Scope: database.APIKeyScopeAll,
38+
gen := databasefake.NewGenerator(t, db)
39+
gen.APIKey(context.Background(), database.APIKey{
40+
LastUsed: database.Now(),
4341
})
4442
return db
4543
},
4644
Count: 1,
4745
}, {
4846
Name: "OneWithExpired",
49-
Database: func() database.Store {
47+
Database: func(t *testing.T) database.Store {
5048
db := databasefake.New()
51-
_, _ = db.InsertAPIKey(context.Background(), database.InsertAPIKeyParams{
52-
UserID: uuid.New(),
53-
LastUsed: database.Now(),
54-
LoginType: database.LoginTypePassword,
55-
Scope: database.APIKeyScopeAll,
49+
gen := databasefake.NewGenerator(t, db)
50+
51+
gen.APIKey(context.Background(), database.APIKey{
52+
LastUsed: database.Now(),
5653
})
54+
5755
// Because this API key hasn't been used in the past hour, this shouldn't
5856
// add to the user count.
59-
_, _ = db.InsertAPIKey(context.Background(), database.InsertAPIKeyParams{
60-
UserID: uuid.New(),
61-
LastUsed: database.Now().Add(-2 * time.Hour),
62-
LoginType: database.LoginTypePassword,
63-
Scope: database.APIKeyScopeAll,
57+
gen.APIKey(context.Background(), database.APIKey{
58+
LastUsed: database.Now().Add(-2 * time.Hour),
6459
})
6560
return db
6661
},
6762
Count: 1,
6863
}, {
6964
Name: "Multiple",
70-
Database: func() database.Store {
65+
Database: func(t *testing.T) database.Store {
7166
db := databasefake.New()
72-
_, _ = db.InsertAPIKey(context.Background(), database.InsertAPIKeyParams{
73-
UserID: uuid.New(),
74-
LastUsed: database.Now(),
75-
LoginType: database.LoginTypePassword,
76-
Scope: database.APIKeyScopeAll,
67+
gen := databasefake.NewGenerator(t, db)
68+
gen.APIKey(context.Background(), database.APIKey{
69+
LastUsed: database.Now(),
7770
})
78-
_, _ = db.InsertAPIKey(context.Background(), database.InsertAPIKeyParams{
79-
UserID: uuid.New(),
80-
LastUsed: database.Now(),
81-
LoginType: database.LoginTypePassword,
82-
Scope: database.APIKeyScopeAll,
71+
gen.APIKey(context.Background(), database.APIKey{
72+
LastUsed: database.Now(),
8373
})
8474
return db
8575
},
@@ -89,7 +79,7 @@ func TestActiveUsers(t *testing.T) {
8979
t.Run(tc.Name, func(t *testing.T) {
9080
t.Parallel()
9181
registry := prometheus.NewRegistry()
92-
cancel, err := prometheusmetrics.ActiveUsers(context.Background(), registry, tc.Database(), time.Millisecond)
82+
cancel, err := prometheusmetrics.ActiveUsers(context.Background(), registry, tc.Database(t), time.Millisecond)
9383
require.NoError(t, err)
9484
t.Cleanup(cancel)
9585

0 commit comments

Comments
 (0)