diff --git a/coderd/database/dbgen/generator.go b/coderd/database/dbgen/generator.go index 841d843e18b4a..da87aa583845e 100644 --- a/coderd/database/dbgen/generator.go +++ b/coderd/database/dbgen/generator.go @@ -186,6 +186,18 @@ func User(t *testing.T, db database.Store, orig database.User) database.User { return user } +func GitSSHKey(t *testing.T, db database.Store, orig database.GitSSHKey) database.GitSSHKey { + key, err := db.InsertGitSSHKey(context.Background(), database.InsertGitSSHKeyParams{ + UserID: takeFirst(orig.UserID, uuid.New()), + CreatedAt: takeFirst(orig.CreatedAt, time.Now()), + UpdatedAt: takeFirst(orig.UpdatedAt, time.Now()), + PrivateKey: takeFirst(orig.PrivateKey, ""), + PublicKey: takeFirst(orig.PublicKey, ""), + }) + require.NoError(t, err, "insert ssh key") + return key +} + func Organization(t *testing.T, db database.Store, orig database.Organization) database.Organization { org, err := db.InsertOrganization(context.Background(), database.InsertOrganizationParams{ ID: takeFirst(orig.ID, uuid.New()), @@ -254,6 +266,34 @@ func ProvisionerJob(t *testing.T, db database.Store, orig database.ProvisionerJo return job } +func WorkspaceApp(t *testing.T, db database.Store, orig database.WorkspaceApp) database.WorkspaceApp { + resource, err := db.InsertWorkspaceApp(context.Background(), database.InsertWorkspaceAppParams{ + ID: takeFirst(orig.ID, uuid.New()), + CreatedAt: takeFirst(orig.CreatedAt, time.Now()), + AgentID: takeFirst(orig.AgentID, uuid.New()), + Slug: takeFirst(orig.Slug, namesgenerator.GetRandomName(1)), + DisplayName: takeFirst(orig.DisplayName, namesgenerator.GetRandomName(1)), + Icon: takeFirst(orig.Icon, namesgenerator.GetRandomName(1)), + Command: sql.NullString{ + String: takeFirst(orig.Command.String, "ls"), + Valid: orig.Command.Valid, + }, + Url: sql.NullString{ + String: takeFirst(orig.Url.String), + Valid: orig.Url.Valid, + }, + External: orig.External, + Subdomain: orig.Subdomain, + SharingLevel: takeFirst(orig.SharingLevel, database.AppSharingLevelOwner), + HealthcheckUrl: takeFirst(orig.HealthcheckUrl, "https://localhost:8000"), + HealthcheckInterval: takeFirst(orig.HealthcheckInterval, 60), + HealthcheckThreshold: takeFirst(orig.HealthcheckThreshold, 60), + Health: takeFirst(orig.Health, database.WorkspaceAppHealthHealthy), + }) + require.NoError(t, err, "insert app") + return resource +} + func WorkspaceResource(t *testing.T, db database.Store, orig database.WorkspaceResource) database.WorkspaceResource { resource, err := db.InsertWorkspaceResource(context.Background(), database.InsertWorkspaceResourceParams{ ID: takeFirst(orig.ID, uuid.New()), @@ -312,6 +352,21 @@ func UserLink(t *testing.T, db database.Store, orig database.UserLink) database. return link } +func GitAuthLink(t *testing.T, db database.Store, orig database.GitAuthLink) database.GitAuthLink { + link, err := db.InsertGitAuthLink(context.Background(), database.InsertGitAuthLinkParams{ + ProviderID: takeFirst(orig.ProviderID, uuid.New().String()), + UserID: takeFirst(orig.UserID, uuid.New()), + OAuthAccessToken: takeFirst(orig.OAuthAccessToken, uuid.NewString()), + OAuthRefreshToken: takeFirst(orig.OAuthAccessToken, uuid.NewString()), + OAuthExpiry: takeFirst(orig.OAuthExpiry, time.Now().Add(time.Hour*24)), + CreatedAt: takeFirst(orig.CreatedAt, time.Now()), + UpdatedAt: takeFirst(orig.UpdatedAt, time.Now()), + }) + + require.NoError(t, err, "insert git auth link") + return link +} + func TemplateVersion(t *testing.T, db database.Store, orig database.TemplateVersion) database.TemplateVersion { version, err := db.InsertTemplateVersion(context.Background(), database.InsertTemplateVersionParams{ ID: takeFirst(orig.ID, uuid.New()), diff --git a/coderd/database/dbgen/generator_test.go b/coderd/database/dbgen/generator_test.go index e9ca24324df9c..6ae00e5672793 100644 --- a/coderd/database/dbgen/generator_test.go +++ b/coderd/database/dbgen/generator_test.go @@ -44,6 +44,16 @@ func TestGenerator(t *testing.T) { require.Equal(t, exp, must(db.GetUserLinkByLinkedID(context.Background(), exp.LinkedID))) }) + t.Run("GitAuthLink", func(t *testing.T) { + t.Parallel() + db := dbfake.New() + exp := dbgen.GitAuthLink(t, db, database.GitAuthLink{}) + require.Equal(t, exp, must(db.GetGitAuthLink(context.Background(), database.GetGitAuthLinkParams{ + ProviderID: exp.ProviderID, + UserID: exp.UserID, + }))) + }) + t.Run("WorkspaceResource", func(t *testing.T) { t.Parallel() db := dbfake.New() @@ -51,6 +61,13 @@ func TestGenerator(t *testing.T) { require.Equal(t, exp, must(db.GetWorkspaceResourceByID(context.Background(), exp.ID))) }) + t.Run("WorkspaceApp", func(t *testing.T) { + t.Parallel() + db := dbfake.New() + exp := dbgen.WorkspaceApp(t, db, database.WorkspaceApp{}) + require.Equal(t, exp, must(db.GetWorkspaceAppsByAgentID(context.Background(), exp.AgentID))[0]) + }) + t.Run("WorkspaceResourceMetadatum", func(t *testing.T) { t.Parallel() db := dbfake.New() @@ -159,6 +176,13 @@ func TestGenerator(t *testing.T) { exp := dbgen.User(t, db, database.User{}) require.Equal(t, exp, must(db.GetUserByID(context.Background(), exp.ID))) }) + + t.Run("SSHKey", func(t *testing.T) { + t.Parallel() + db := dbfake.New() + exp := dbgen.GitSSHKey(t, db, database.GitSSHKey{}) + require.Equal(t, exp, must(db.GetGitSSHKey(context.Background(), exp.UserID))) + }) } func must[T any](value T, err error) T {