Skip to content

Commit d423ba2

Browse files
committed
Refactor api tests to use fake generator
1 parent d4fe6b7 commit d423ba2

File tree

5 files changed

+160
-190
lines changed

5 files changed

+160
-190
lines changed

coderd/database/databasefake/generator.go

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func NewGenerator(t *testing.T, db database.Store) *Generator {
4444
// specified.
4545
func (g *Generator) PrimaryOrg(ctx context.Context) database.Organization {
4646
if g.primaryOrg == nil {
47-
org := g.Organization(ctx, "primary-org", database.Organization{
47+
org := g.Organization(ctx, database.Organization{
4848
ID: g.Lookup(primaryOrgName),
4949
Name: primaryOrgName,
5050
Description: "This is the default primary organization for all tests",
@@ -81,11 +81,8 @@ func (g *Generator) RandomName() string {
8181
}
8282
}
8383

84-
func (g *Generator) APIKey(ctx context.Context, name string, seed database.APIKey) (key database.APIKey, token string) {
85-
if name == "" {
86-
name = g.RandomName()
87-
}
88-
84+
func (g *Generator) APIKey(ctx context.Context, seed database.APIKey) (key database.APIKey, token string) {
85+
name := g.RandomName()
8986
out := g.Populate(ctx, map[string]interface{}{
9087
name: seed,
9188
})
@@ -96,40 +93,44 @@ func (g *Generator) APIKey(ctx context.Context, name string, seed database.APIKe
9693
return key, fmt.Sprintf("%s-%s", key.ID, secret)
9794
}
9895

99-
func (g *Generator) WorkspaceResource(ctx context.Context, name string, seed database.WorkspaceResource) database.WorkspaceResource {
100-
return populate(ctx, g, name, seed)
96+
func (g *Generator) UserLink(ctx context.Context, seed database.UserLink) database.UserLink {
97+
return populate(ctx, g, "", seed)
98+
}
99+
100+
func (g *Generator) WorkspaceResource(ctx context.Context, seed database.WorkspaceResource) database.WorkspaceResource {
101+
return populate(ctx, g, "", seed)
101102
}
102103

103-
func (g *Generator) Job(ctx context.Context, name string, seed database.ProvisionerJob) database.ProvisionerJob {
104-
return populate(ctx, g, name, seed)
104+
func (g *Generator) Job(ctx context.Context, seed database.ProvisionerJob) database.ProvisionerJob {
105+
return populate(ctx, g, "", seed)
105106
}
106107

107-
func (g *Generator) Group(ctx context.Context, name string, seed database.Group) database.Group {
108-
return populate(ctx, g, name, seed)
108+
func (g *Generator) Group(ctx context.Context, seed database.Group) database.Group {
109+
return populate(ctx, g, "", seed)
109110
}
110111

111-
func (g *Generator) Organization(ctx context.Context, name string, seed database.Organization) database.Organization {
112-
return populate(ctx, g, name, seed)
112+
func (g *Generator) Organization(ctx context.Context, seed database.Organization) database.Organization {
113+
return populate(ctx, g, "", seed)
113114
}
114115

115-
func (g *Generator) Workspace(ctx context.Context, name string, seed database.Workspace) database.Workspace {
116-
return populate(ctx, g, name, seed)
116+
func (g *Generator) Workspace(ctx context.Context, seed database.Workspace) database.Workspace {
117+
return populate(ctx, g, "", seed)
117118
}
118119

119-
func (g *Generator) Template(ctx context.Context, name string, seed database.Template) database.Template {
120-
return populate(ctx, g, name, seed)
120+
func (g *Generator) Template(ctx context.Context, seed database.Template) database.Template {
121+
return populate(ctx, g, "", seed)
121122
}
122123

123-
func (g *Generator) TemplateVersion(ctx context.Context, name string, seed database.TemplateVersion) database.TemplateVersion {
124-
return populate(ctx, g, name, seed)
124+
func (g *Generator) TemplateVersion(ctx context.Context, seed database.TemplateVersion) database.TemplateVersion {
125+
return populate(ctx, g, "", seed)
125126
}
126127

127-
func (g *Generator) WorkspaceBuild(ctx context.Context, name string, seed database.WorkspaceBuild) database.WorkspaceBuild {
128-
return populate(ctx, g, name, seed)
128+
func (g *Generator) WorkspaceBuild(ctx context.Context, seed database.WorkspaceBuild) database.WorkspaceBuild {
129+
return populate(ctx, g, "", seed)
129130
}
130131

131-
func (g *Generator) User(ctx context.Context, name string, seed database.User) database.User {
132-
return populate(ctx, g, name, seed)
132+
func (g *Generator) User(ctx context.Context, seed database.User) database.User {
133+
return populate(ctx, g, "", seed)
133134
}
134135

135136
func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) map[string]interface{} {
@@ -144,8 +145,9 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
144145
hashed := sha256.Sum256([]byte(secret))
145146

146147
key, err := db.InsertAPIKey(ctx, database.InsertAPIKeyParams{
147-
ID: takeFirst(orig.ID, id),
148-
LifetimeSeconds: takeFirst(orig.LifetimeSeconds, 3600),
148+
ID: takeFirst(orig.ID, id),
149+
// 0 defaults to 86400 at the db layer
150+
LifetimeSeconds: takeFirst(orig.LifetimeSeconds, 0),
149151
HashedSecret: takeFirstBytes(orig.HashedSecret, hashed[:]),
150152
IPAddress: pqtype.Inet{},
151153
UserID: takeFirst(orig.UserID, uuid.New()),
@@ -291,6 +293,20 @@ func (g *Generator) Populate(ctx context.Context, seed map[string]interface{}) m
291293
require.NoError(t, err, "insert resource")
292294

293295
seed[name] = resource
296+
297+
case database.UserLink:
298+
link, err := db.InsertUserLink(ctx, database.InsertUserLinkParams{
299+
UserID: takeFirst(orig.UserID, uuid.New()),
300+
LoginType: takeFirst(orig.LoginType, database.LoginTypeGithub),
301+
LinkedID: takeFirst(orig.LinkedID),
302+
OAuthAccessToken: takeFirst(orig.OAuthAccessToken, uuid.NewString()),
303+
OAuthRefreshToken: takeFirst(orig.OAuthAccessToken, uuid.NewString()),
304+
OAuthExpiry: takeFirstTime(orig.OAuthExpiry, time.Now().Add(time.Hour*24)),
305+
})
306+
307+
require.NoError(t, err, "insert link")
308+
309+
seed[name] = link
294310
}
295311
}
296312
return seed

0 commit comments

Comments
 (0)