diff --git a/coderd/database/dbgen/generator.go b/coderd/database/dbgen/generator.go index 3daae0e390805..ea39d2e8e34a1 100644 --- a/coderd/database/dbgen/generator.go +++ b/coderd/database/dbgen/generator.go @@ -22,7 +22,7 @@ import ( // All methods take in a 'seed' object. Any provided fields in the seed will be // maintained. Any fields omitted will have sensible defaults generated. -func AuditLog(t *testing.T, db database.Store, seed database.AuditLog) database.AuditLog { +func AuditLog(t testing.TB, db database.Store, seed database.AuditLog) database.AuditLog { log, err := db.InsertAuditLog(context.Background(), database.InsertAuditLogParams{ ID: takeFirst(seed.ID, uuid.New()), Time: takeFirst(seed.Time, database.Now()), @@ -50,7 +50,7 @@ func AuditLog(t *testing.T, db database.Store, seed database.AuditLog) database. return log } -func Template(t *testing.T, db database.Store, seed database.Template) database.Template { +func Template(t testing.TB, db database.Store, seed database.Template) database.Template { template, err := db.InsertTemplate(context.Background(), database.InsertTemplateParams{ ID: takeFirst(seed.ID, uuid.New()), CreatedAt: takeFirst(seed.CreatedAt, database.Now()), @@ -72,7 +72,7 @@ func Template(t *testing.T, db database.Store, seed database.Template) database. return template } -func APIKey(t *testing.T, db database.Store, seed database.APIKey) (key database.APIKey, token string) { +func APIKey(t testing.TB, db database.Store, seed database.APIKey) (key database.APIKey, token string) { id, _ := cryptorand.String(10) secret, _ := cryptorand.String(22) hashed := sha256.Sum256([]byte(secret)) @@ -95,7 +95,7 @@ func APIKey(t *testing.T, db database.Store, seed database.APIKey) (key database return key, fmt.Sprintf("%s-%s", key.ID, secret) } -func WorkspaceAgent(t *testing.T, db database.Store, orig database.WorkspaceAgent) database.WorkspaceAgent { +func WorkspaceAgent(t testing.TB, db database.Store, orig database.WorkspaceAgent) database.WorkspaceAgent { workspace, err := db.InsertWorkspaceAgent(context.Background(), database.InsertWorkspaceAgentParams{ ID: takeFirst(orig.ID, uuid.New()), CreatedAt: takeFirst(orig.CreatedAt, database.Now()), @@ -136,7 +136,7 @@ func WorkspaceAgent(t *testing.T, db database.Store, orig database.WorkspaceAgen return workspace } -func Workspace(t *testing.T, db database.Store, orig database.Workspace) database.Workspace { +func Workspace(t testing.TB, db database.Store, orig database.Workspace) database.Workspace { workspace, err := db.InsertWorkspace(context.Background(), database.InsertWorkspaceParams{ ID: takeFirst(orig.ID, uuid.New()), OwnerID: takeFirst(orig.OwnerID, uuid.New()), @@ -152,7 +152,7 @@ func Workspace(t *testing.T, db database.Store, orig database.Workspace) databas return workspace } -func WorkspaceBuild(t *testing.T, db database.Store, orig database.WorkspaceBuild) database.WorkspaceBuild { +func WorkspaceBuild(t testing.TB, db database.Store, orig database.WorkspaceBuild) database.WorkspaceBuild { build, err := db.InsertWorkspaceBuild(context.Background(), database.InsertWorkspaceBuildParams{ ID: takeFirst(orig.ID, uuid.New()), CreatedAt: takeFirst(orig.CreatedAt, database.Now()), @@ -171,7 +171,7 @@ func WorkspaceBuild(t *testing.T, db database.Store, orig database.WorkspaceBuil return build } -func User(t *testing.T, db database.Store, orig database.User) database.User { +func User(t testing.TB, db database.Store, orig database.User) database.User { user, err := db.InsertUser(context.Background(), database.InsertUserParams{ ID: takeFirst(orig.ID, uuid.New()), Email: takeFirst(orig.Email, namesgenerator.GetRandomName(1)), @@ -186,7 +186,7 @@ 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 { +func GitSSHKey(t testing.TB, 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, database.Now()), @@ -198,7 +198,7 @@ func GitSSHKey(t *testing.T, db database.Store, orig database.GitSSHKey) databas return key } -func Organization(t *testing.T, db database.Store, orig database.Organization) database.Organization { +func Organization(t testing.TB, db database.Store, orig database.Organization) database.Organization { org, err := db.InsertOrganization(context.Background(), database.InsertOrganizationParams{ ID: takeFirst(orig.ID, uuid.New()), Name: takeFirst(orig.Name, namesgenerator.GetRandomName(1)), @@ -210,7 +210,7 @@ func Organization(t *testing.T, db database.Store, orig database.Organization) d return org } -func OrganizationMember(t *testing.T, db database.Store, orig database.OrganizationMember) database.OrganizationMember { +func OrganizationMember(t testing.TB, db database.Store, orig database.OrganizationMember) database.OrganizationMember { mem, err := db.InsertOrganizationMember(context.Background(), database.InsertOrganizationMemberParams{ OrganizationID: takeFirst(orig.OrganizationID, uuid.New()), UserID: takeFirst(orig.UserID, uuid.New()), @@ -222,7 +222,7 @@ func OrganizationMember(t *testing.T, db database.Store, orig database.Organizat return mem } -func Group(t *testing.T, db database.Store, orig database.Group) database.Group { +func Group(t testing.TB, db database.Store, orig database.Group) database.Group { group, err := db.InsertGroup(context.Background(), database.InsertGroupParams{ ID: takeFirst(orig.ID, uuid.New()), Name: takeFirst(orig.Name, namesgenerator.GetRandomName(1)), @@ -234,7 +234,7 @@ func Group(t *testing.T, db database.Store, orig database.Group) database.Group return group } -func GroupMember(t *testing.T, db database.Store, orig database.GroupMember) database.GroupMember { +func GroupMember(t testing.TB, db database.Store, orig database.GroupMember) database.GroupMember { member := database.GroupMember{ UserID: takeFirst(orig.UserID, uuid.New()), GroupID: takeFirst(orig.GroupID, uuid.New()), @@ -248,7 +248,7 @@ func GroupMember(t *testing.T, db database.Store, orig database.GroupMember) dat return member } -func ProvisionerJob(t *testing.T, db database.Store, orig database.ProvisionerJob) database.ProvisionerJob { +func ProvisionerJob(t testing.TB, db database.Store, orig database.ProvisionerJob) database.ProvisionerJob { job, err := db.InsertProvisionerJob(context.Background(), database.InsertProvisionerJobParams{ ID: takeFirst(orig.ID, uuid.New()), CreatedAt: takeFirst(orig.CreatedAt, database.Now()), @@ -266,7 +266,7 @@ 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 { +func WorkspaceApp(t testing.TB, 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, database.Now()), @@ -294,7 +294,7 @@ func WorkspaceApp(t *testing.T, db database.Store, orig database.WorkspaceApp) d return resource } -func WorkspaceResource(t *testing.T, db database.Store, orig database.WorkspaceResource) database.WorkspaceResource { +func WorkspaceResource(t testing.TB, db database.Store, orig database.WorkspaceResource) database.WorkspaceResource { resource, err := db.InsertWorkspaceResource(context.Background(), database.InsertWorkspaceResourceParams{ ID: takeFirst(orig.ID, uuid.New()), CreatedAt: takeFirst(orig.CreatedAt, database.Now()), @@ -314,7 +314,7 @@ func WorkspaceResource(t *testing.T, db database.Store, orig database.WorkspaceR return resource } -func WorkspaceResourceMetadatums(t *testing.T, db database.Store, seed database.WorkspaceResourceMetadatum) []database.WorkspaceResourceMetadatum { +func WorkspaceResourceMetadatums(t testing.TB, db database.Store, seed database.WorkspaceResourceMetadatum) []database.WorkspaceResourceMetadatum { meta, err := db.InsertWorkspaceResourceMetadata(context.Background(), database.InsertWorkspaceResourceMetadataParams{ WorkspaceResourceID: takeFirst(seed.WorkspaceResourceID, uuid.New()), Key: []string{takeFirst(seed.Key, namesgenerator.GetRandomName(1))}, @@ -325,7 +325,7 @@ func WorkspaceResourceMetadatums(t *testing.T, db database.Store, seed database. return meta } -func File(t *testing.T, db database.Store, orig database.File) database.File { +func File(t testing.TB, db database.Store, orig database.File) database.File { file, err := db.InsertFile(context.Background(), database.InsertFileParams{ ID: takeFirst(orig.ID, uuid.New()), Hash: takeFirst(orig.Hash, hex.EncodeToString(make([]byte, 32))), @@ -338,7 +338,7 @@ func File(t *testing.T, db database.Store, orig database.File) database.File { return file } -func UserLink(t *testing.T, db database.Store, orig database.UserLink) database.UserLink { +func UserLink(t testing.TB, db database.Store, orig database.UserLink) database.UserLink { link, err := db.InsertUserLink(context.Background(), database.InsertUserLinkParams{ UserID: takeFirst(orig.UserID, uuid.New()), LoginType: takeFirst(orig.LoginType, database.LoginTypeGithub), @@ -352,7 +352,7 @@ 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 { +func GitAuthLink(t testing.TB, 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()), @@ -367,7 +367,7 @@ func GitAuthLink(t *testing.T, db database.Store, orig database.GitAuthLink) dat return link } -func TemplateVersion(t *testing.T, db database.Store, orig database.TemplateVersion) database.TemplateVersion { +func TemplateVersion(t testing.TB, db database.Store, orig database.TemplateVersion) database.TemplateVersion { version, err := db.InsertTemplateVersion(context.Background(), database.InsertTemplateVersionParams{ ID: takeFirst(orig.ID, uuid.New()), TemplateID: uuid.NullUUID{ @@ -386,7 +386,7 @@ func TemplateVersion(t *testing.T, db database.Store, orig database.TemplateVers return version } -func ParameterSchema(t *testing.T, db database.Store, seed database.ParameterSchema) database.ParameterSchema { +func ParameterSchema(t testing.TB, db database.Store, seed database.ParameterSchema) database.ParameterSchema { scheme, err := db.InsertParameterSchema(context.Background(), database.InsertParameterSchemaParams{ ID: takeFirst(seed.ID, uuid.New()), JobID: takeFirst(seed.JobID, uuid.New()), @@ -410,7 +410,7 @@ func ParameterSchema(t *testing.T, db database.Store, seed database.ParameterSch return scheme } -func ParameterValue(t *testing.T, db database.Store, seed database.ParameterValue) database.ParameterValue { +func ParameterValue(t testing.TB, db database.Store, seed database.ParameterValue) database.ParameterValue { scheme, err := db.InsertParameterValue(context.Background(), database.InsertParameterValueParams{ ID: takeFirst(seed.ID, uuid.New()), Name: takeFirst(seed.Name, namesgenerator.GetRandomName(1)), diff --git a/coderd/httpmw/organizationparam_test.go b/coderd/httpmw/organizationparam_test.go index e74b7a6ae5984..ce9d21457e508 100644 --- a/coderd/httpmw/organizationparam_test.go +++ b/coderd/httpmw/organizationparam_test.go @@ -2,12 +2,9 @@ package httpmw_test import ( "context" - "crypto/sha256" - "fmt" "net/http" "net/http/httptest" "testing" - "time" "github.com/go-chi/chi/v5" "github.com/google/uuid" @@ -15,9 +12,9 @@ import ( "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/httpmw" "github.com/coder/coder/codersdk" - "github.com/coder/coder/cryptorand" ) func TestOrganizationParam(t *testing.T) { @@ -25,36 +22,16 @@ func TestOrganizationParam(t *testing.T) { setupAuthentication := func(db database.Store) (*http.Request, database.User) { var ( - id, secret = randomAPIKeyParts() - r = httptest.NewRequest("GET", "/", nil) - hashed = sha256.Sum256([]byte(secret)) + r = httptest.NewRequest("GET", "/", nil) ) - r.Header.Set(codersdk.SessionTokenHeader, fmt.Sprintf("%s-%s", id, secret)) - userID := uuid.New() - username, err := cryptorand.String(8) - require.NoError(t, err) - - user, err := db.InsertUser(r.Context(), database.InsertUserParams{ - ID: userID, - Email: "testaccount@coder.com", - HashedPassword: hashed[:], - Username: username, - CreatedAt: database.Now(), - UpdatedAt: database.Now(), - LoginType: database.LoginTypePassword, + user := dbgen.User(t, db, database.User{ + ID: uuid.New(), }) - require.NoError(t, err) - _, err = db.InsertAPIKey(r.Context(), database.InsertAPIKeyParams{ - ID: id, - UserID: user.ID, - HashedSecret: hashed[:], - LastUsed: database.Now(), - ExpiresAt: database.Now().Add(time.Minute), - LoginType: database.LoginTypePassword, - Scope: database.APIKeyScopeAll, + _, token := dbgen.APIKey(t, db, database.APIKey{ + UserID: user.ID, }) - require.NoError(t, err) + r.Header.Set(codersdk.SessionTokenHeader, token) r = r.WithContext(context.WithValue(r.Context(), chi.RouteCtxKey, chi.NewRouteContext())) return r, user } @@ -168,20 +145,11 @@ func TestOrganizationParam(t *testing.T) { r, user = setupAuthentication(db) rtr = chi.NewRouter() ) - organization, err := db.InsertOrganization(r.Context(), database.InsertOrganizationParams{ - ID: uuid.New(), - Name: "test", - CreatedAt: database.Now(), - UpdatedAt: database.Now(), - }) - require.NoError(t, err) - _, err = db.InsertOrganizationMember(r.Context(), database.InsertOrganizationMemberParams{ + organization := dbgen.Organization(t, db, database.Organization{}) + _ = dbgen.OrganizationMember(t, db, database.OrganizationMember{ OrganizationID: organization.ID, UserID: user.ID, - CreatedAt: database.Now(), - UpdatedAt: database.Now(), }) - require.NoError(t, err) chi.RouteContext(r.Context()).URLParams.Add("organization", organization.ID.String()) chi.RouteContext(r.Context()).URLParams.Add("user", user.ID.String()) rtr.Use( diff --git a/coderd/httpmw/templateparam_test.go b/coderd/httpmw/templateparam_test.go index d365a2f4c10e0..899aaa4fab800 100644 --- a/coderd/httpmw/templateparam_test.go +++ b/coderd/httpmw/templateparam_test.go @@ -2,12 +2,9 @@ package httpmw_test import ( "context" - "crypto/sha256" - "fmt" "net/http" "net/http/httptest" "testing" - "time" "github.com/go-chi/chi/v5" "github.com/google/uuid" @@ -15,9 +12,9 @@ import ( "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/httpmw" "github.com/coder/coder/codersdk" - "github.com/coder/coder/cryptorand" ) func TestTemplateParam(t *testing.T) { @@ -25,54 +22,19 @@ func TestTemplateParam(t *testing.T) { setupAuthentication := func(db database.Store) (*http.Request, database.Organization) { var ( - id, secret = randomAPIKeyParts() - hashed = sha256.Sum256([]byte(secret)) + user = dbgen.User(t, db, database.User{}) + _, token = dbgen.APIKey(t, db, database.APIKey{ + UserID: user.ID, + }) + organization = dbgen.Organization(t, db, database.Organization{}) + _ = dbgen.OrganizationMember(t, db, database.OrganizationMember{ + UserID: user.ID, + OrganizationID: organization.ID, + }) ) - r := httptest.NewRequest("GET", "/", nil) - r.Header.Set(codersdk.SessionTokenHeader, fmt.Sprintf("%s-%s", id, secret)) - - userID := uuid.New() - username, err := cryptorand.String(8) - require.NoError(t, err) - user, err := db.InsertUser(r.Context(), database.InsertUserParams{ - ID: userID, - Email: "testaccount@coder.com", - HashedPassword: hashed[:], - Username: username, - CreatedAt: database.Now(), - UpdatedAt: database.Now(), - LoginType: database.LoginTypePassword, - }) - require.NoError(t, err) - - _, err = db.InsertAPIKey(r.Context(), database.InsertAPIKeyParams{ - ID: id, - UserID: user.ID, - HashedSecret: hashed[:], - LastUsed: database.Now(), - ExpiresAt: database.Now().Add(time.Minute), - LoginType: database.LoginTypePassword, - Scope: database.APIKeyScopeAll, - }) - require.NoError(t, err) - - orgID := uuid.New() - organization, err := db.InsertOrganization(r.Context(), database.InsertOrganizationParams{ - ID: orgID, - Name: "banana", - Description: "wowie", - CreatedAt: database.Now(), - UpdatedAt: database.Now(), - }) - require.NoError(t, err) - _, err = db.InsertOrganizationMember(r.Context(), database.InsertOrganizationMemberParams{ - OrganizationID: orgID, - UserID: user.ID, - CreatedAt: database.Now(), - UpdatedAt: database.Now(), - }) - require.NoError(t, err) + r := httptest.NewRequest("GET", "/", nil) + r.Header.Set(codersdk.SessionTokenHeader, token) ctx := chi.NewRouteContext() r = r.WithContext(context.WithValue(r.Context(), chi.RouteCtxKey, ctx)) @@ -146,13 +108,11 @@ func TestTemplateParam(t *testing.T) { }) r, org := setupAuthentication(db) - template, err := db.InsertTemplate(context.Background(), database.InsertTemplateParams{ - ID: uuid.New(), + template := dbgen.Template(t, db, database.Template{ OrganizationID: org.ID, - Name: "moo", Provisioner: database.ProvisionerTypeEcho, }) - require.NoError(t, err) + chi.RouteContext(r.Context()).URLParams.Add("template", template.ID.String()) rw := httptest.NewRecorder() rtr.ServeHTTP(rw, r) diff --git a/coderd/httpmw/templateversionparam_test.go b/coderd/httpmw/templateversionparam_test.go index c7b295ea5c086..5961f7e27c146 100644 --- a/coderd/httpmw/templateversionparam_test.go +++ b/coderd/httpmw/templateversionparam_test.go @@ -2,12 +2,9 @@ package httpmw_test import ( "context" - "crypto/sha256" - "fmt" "net/http" "net/http/httptest" "testing" - "time" "github.com/go-chi/chi/v5" "github.com/google/uuid" @@ -15,72 +12,31 @@ import ( "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/httpmw" "github.com/coder/coder/codersdk" - "github.com/coder/coder/cryptorand" ) func TestTemplateVersionParam(t *testing.T) { t.Parallel() setupAuthentication := func(db database.Store) (*http.Request, database.Template) { - var ( - id, secret = randomAPIKeyParts() - hashed = sha256.Sum256([]byte(secret)) - ) - r := httptest.NewRequest("GET", "/", nil) - r.Header.Set(codersdk.SessionTokenHeader, fmt.Sprintf("%s-%s", id, secret)) - - userID := uuid.New() - username, err := cryptorand.String(8) - require.NoError(t, err) - user, err := db.InsertUser(r.Context(), database.InsertUserParams{ - ID: userID, - Email: "testaccount@coder.com", - HashedPassword: hashed[:], - Username: username, - CreatedAt: database.Now(), - UpdatedAt: database.Now(), - LoginType: database.LoginTypePassword, - }) - require.NoError(t, err) - - _, err = db.InsertAPIKey(r.Context(), database.InsertAPIKeyParams{ - ID: id, - UserID: user.ID, - HashedSecret: hashed[:], - LastUsed: database.Now(), - ExpiresAt: database.Now().Add(time.Minute), - LoginType: database.LoginTypePassword, - Scope: database.APIKeyScopeAll, - }) - require.NoError(t, err) - - orgID := uuid.New() - organization, err := db.InsertOrganization(r.Context(), database.InsertOrganizationParams{ - ID: orgID, - Name: "banana", - Description: "wowie", - CreatedAt: database.Now(), - UpdatedAt: database.Now(), + user := dbgen.User(t, db, database.User{}) + _, token := dbgen.APIKey(t, db, database.APIKey{ + UserID: user.ID, }) - require.NoError(t, err) - - _, err = db.InsertOrganizationMember(r.Context(), database.InsertOrganizationMemberParams{ - OrganizationID: orgID, + organization := dbgen.Organization(t, db, database.Organization{}) + _ = dbgen.OrganizationMember(t, db, database.OrganizationMember{ UserID: user.ID, - CreatedAt: database.Now(), - UpdatedAt: database.Now(), + OrganizationID: organization.ID, }) - require.NoError(t, err) - - template, err := db.InsertTemplate(context.Background(), database.InsertTemplateParams{ - ID: uuid.New(), + template := dbgen.Template(t, db, database.Template{ OrganizationID: organization.ID, - Name: "moo", Provisioner: database.ProvisionerTypeEcho, }) - require.NoError(t, err) + + r := httptest.NewRequest("GET", "/", nil) + r.Header.Set(codersdk.SessionTokenHeader, token) ctx := chi.NewRouteContext() ctx.URLParams.Add("organization", organization.Name) @@ -139,12 +95,9 @@ func TestTemplateVersionParam(t *testing.T) { }) r, template := setupAuthentication(db) - templateVersion, err := db.InsertTemplateVersion(context.Background(), database.InsertTemplateVersionParams{ - ID: uuid.New(), + templateVersion := dbgen.TemplateVersion(t, db, database.TemplateVersion{ OrganizationID: template.OrganizationID, - Name: "moo", }) - require.NoError(t, err) chi.RouteContext(r.Context()).URLParams.Add("templateversion", templateVersion.ID.String()) rw := httptest.NewRecorder() rtr.ServeHTTP(rw, r) diff --git a/coderd/httpmw/userparam_test.go b/coderd/httpmw/userparam_test.go index 09f6e20ca9089..aac7e224a7817 100644 --- a/coderd/httpmw/userparam_test.go +++ b/coderd/httpmw/userparam_test.go @@ -2,19 +2,16 @@ package httpmw_test import ( "context" - "crypto/sha256" - "fmt" "net/http" "net/http/httptest" "testing" - "time" "github.com/go-chi/chi/v5" - "github.com/google/uuid" "github.com/stretchr/testify/require" "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/httpmw" "github.com/coder/coder/codersdk" ) @@ -23,32 +20,15 @@ func TestUserParam(t *testing.T) { t.Parallel() setup := func(t *testing.T) (database.Store, *httptest.ResponseRecorder, *http.Request) { var ( - db = dbfake.New() - id, secret = randomAPIKeyParts() - hashed = sha256.Sum256([]byte(secret)) - r = httptest.NewRequest("GET", "/", nil) - rw = httptest.NewRecorder() + db = dbfake.New() + r = httptest.NewRequest("GET", "/", nil) + rw = httptest.NewRecorder() ) - r.Header.Set(codersdk.SessionTokenHeader, fmt.Sprintf("%s-%s", id, secret)) - - user, err := db.InsertUser(r.Context(), database.InsertUserParams{ - ID: uuid.New(), - Email: "admin@email.com", - Username: "admin", - LoginType: database.LoginTypePassword, - }) - require.NoError(t, err) - - _, err = db.InsertAPIKey(r.Context(), database.InsertAPIKeyParams{ - ID: id, - UserID: user.ID, - HashedSecret: hashed[:], - LastUsed: database.Now(), - ExpiresAt: database.Now().Add(time.Minute), - LoginType: database.LoginTypePassword, - Scope: database.APIKeyScopeAll, + user := dbgen.User(t, db, database.User{}) + _, token := dbgen.APIKey(t, db, database.APIKey{ + UserID: user.ID, }) - require.NoError(t, err) + r.Header.Set(codersdk.SessionTokenHeader, token) return db, rw, r } diff --git a/coderd/httpmw/workspaceagent_test.go b/coderd/httpmw/workspaceagent_test.go index 5e41cfd18eec2..85800a6a71d66 100644 --- a/coderd/httpmw/workspaceagent_test.go +++ b/coderd/httpmw/workspaceagent_test.go @@ -1,7 +1,6 @@ package httpmw_test import ( - "context" "net/http" "net/http/httptest" "testing" @@ -12,6 +11,7 @@ import ( "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/httpmw" "github.com/coder/coder/codersdk" ) @@ -55,12 +55,9 @@ func TestWorkspaceAgent(t *testing.T) { rw.WriteHeader(http.StatusOK) }) r, token := setup(db) - _, err := db.InsertWorkspaceAgent(context.Background(), database.InsertWorkspaceAgentParams{ - ID: uuid.New(), + _ = dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{ AuthToken: token, }) - require.NoError(t, err) - require.NoError(t, err) rw := httptest.NewRecorder() rtr.ServeHTTP(rw, r) diff --git a/coderd/httpmw/workspaceagentparam_test.go b/coderd/httpmw/workspaceagentparam_test.go index 86e8c5d6a2cd6..62fd580a1ef1f 100644 --- a/coderd/httpmw/workspaceagentparam_test.go +++ b/coderd/httpmw/workspaceagentparam_test.go @@ -2,12 +2,9 @@ package httpmw_test import ( "context" - "crypto/sha256" - "fmt" "net/http" "net/http/httptest" "testing" - "time" "github.com/go-chi/chi/v5" "github.com/google/uuid" @@ -15,9 +12,9 @@ import ( "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/httpmw" "github.com/coder/coder/codersdk" - "github.com/coder/coder/cryptorand" ) func TestWorkspaceAgentParam(t *testing.T) { @@ -25,77 +22,38 @@ func TestWorkspaceAgentParam(t *testing.T) { setupAuthentication := func(db database.Store) (*http.Request, database.WorkspaceAgent) { var ( - id, secret = randomAPIKeyParts() - hashed = sha256.Sum256([]byte(secret)) + user = dbgen.User(t, db, database.User{}) + _, token = dbgen.APIKey(t, db, database.APIKey{ + UserID: user.ID, + }) + workspace = dbgen.Workspace(t, db, database.Workspace{ + OwnerID: user.ID, + }) + build = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{ + WorkspaceID: workspace.ID, + Transition: database.WorkspaceTransitionStart, + Reason: database.BuildReasonInitiator, + }) + job = dbgen.ProvisionerJob(t, db, database.ProvisionerJob{ + ID: build.JobID, + Type: database.ProvisionerJobTypeWorkspaceBuild, + Provisioner: database.ProvisionerTypeEcho, + StorageMethod: database.ProvisionerStorageMethodFile, + }) + resource = dbgen.WorkspaceResource(t, db, database.WorkspaceResource{ + JobID: job.ID, + Transition: database.WorkspaceTransitionStart, + }) + agent = dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{ + ResourceID: resource.ID, + }) ) - r := httptest.NewRequest("GET", "/", nil) - r.Header.Set(codersdk.SessionTokenHeader, fmt.Sprintf("%s-%s", id, secret)) - - userID := uuid.New() - username, err := cryptorand.String(8) - require.NoError(t, err) - user, err := db.InsertUser(r.Context(), database.InsertUserParams{ - ID: userID, - Email: "testaccount@coder.com", - HashedPassword: hashed[:], - Username: username, - CreatedAt: database.Now(), - UpdatedAt: database.Now(), - LoginType: database.LoginTypePassword, - }) - require.NoError(t, err) - - _, err = db.InsertAPIKey(r.Context(), database.InsertAPIKeyParams{ - ID: id, - UserID: user.ID, - HashedSecret: hashed[:], - LastUsed: database.Now(), - ExpiresAt: database.Now().Add(time.Minute), - LoginType: database.LoginTypePassword, - Scope: database.APIKeyScopeAll, - }) - require.NoError(t, err) - - workspace, err := db.InsertWorkspace(context.Background(), database.InsertWorkspaceParams{ - ID: uuid.New(), - TemplateID: uuid.New(), - OwnerID: user.ID, - Name: "potato", - }) - require.NoError(t, err) - build, err := db.InsertWorkspaceBuild(context.Background(), database.InsertWorkspaceBuildParams{ - ID: uuid.New(), - WorkspaceID: workspace.ID, - JobID: uuid.New(), - Transition: database.WorkspaceTransitionStart, - Reason: database.BuildReasonInitiator, - }) - require.NoError(t, err) - - job, err := db.InsertProvisionerJob(context.Background(), database.InsertProvisionerJobParams{ - ID: build.JobID, - Type: database.ProvisionerJobTypeWorkspaceBuild, - Provisioner: database.ProvisionerTypeEcho, - StorageMethod: database.ProvisionerStorageMethodFile, - }) - require.NoError(t, err) - - resource, err := db.InsertWorkspaceResource(context.Background(), database.InsertWorkspaceResourceParams{ - ID: uuid.New(), - JobID: job.ID, - Transition: database.WorkspaceTransitionStart, - }) - require.NoError(t, err) - - agent, err := db.InsertWorkspaceAgent(context.Background(), database.InsertWorkspaceAgentParams{ - ID: uuid.New(), - ResourceID: resource.ID, - }) - require.NoError(t, err) + r := httptest.NewRequest("GET", "/", nil) + r.Header.Set(codersdk.SessionTokenHeader, token) ctx := chi.NewRouteContext() - ctx.URLParams.Add("user", userID.String()) + ctx.URLParams.Add("user", user.ID.String()) ctx.URLParams.Add("workspaceagent", agent.ID.String()) r = r.WithContext(context.WithValue(r.Context(), chi.RouteCtxKey, ctx)) return r, agent diff --git a/coderd/httpmw/workspacebuildparam_test.go b/coderd/httpmw/workspacebuildparam_test.go index 601da15b9d43f..00b64fd7a27c3 100644 --- a/coderd/httpmw/workspacebuildparam_test.go +++ b/coderd/httpmw/workspacebuildparam_test.go @@ -2,12 +2,9 @@ package httpmw_test import ( "context" - "crypto/sha256" - "fmt" "net/http" "net/http/httptest" "testing" - "time" "github.com/go-chi/chi/v5" "github.com/google/uuid" @@ -15,9 +12,9 @@ import ( "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/httpmw" "github.com/coder/coder/codersdk" - "github.com/coder/coder/cryptorand" ) func TestWorkspaceBuildParam(t *testing.T) { @@ -25,47 +22,20 @@ func TestWorkspaceBuildParam(t *testing.T) { setupAuthentication := func(db database.Store) (*http.Request, database.Workspace) { var ( - id, secret = randomAPIKeyParts() - hashed = sha256.Sum256([]byte(secret)) + user = dbgen.User(t, db, database.User{}) + _, token = dbgen.APIKey(t, db, database.APIKey{ + UserID: user.ID, + }) + workspace = dbgen.Workspace(t, db, database.Workspace{ + OwnerID: user.ID, + }) ) - r := httptest.NewRequest("GET", "/", nil) - r.Header.Set(codersdk.SessionTokenHeader, fmt.Sprintf("%s-%s", id, secret)) - - userID := uuid.New() - username, err := cryptorand.String(8) - require.NoError(t, err) - user, err := db.InsertUser(r.Context(), database.InsertUserParams{ - ID: userID, - Email: "testaccount@coder.com", - HashedPassword: hashed[:], - Username: username, - CreatedAt: database.Now(), - UpdatedAt: database.Now(), - LoginType: database.LoginTypePassword, - }) - require.NoError(t, err) - - _, err = db.InsertAPIKey(r.Context(), database.InsertAPIKeyParams{ - ID: id, - UserID: user.ID, - HashedSecret: hashed[:], - LastUsed: database.Now(), - ExpiresAt: database.Now().Add(time.Minute), - LoginType: database.LoginTypePassword, - Scope: database.APIKeyScopeAll, - }) - require.NoError(t, err) - workspace, err := db.InsertWorkspace(context.Background(), database.InsertWorkspaceParams{ - ID: uuid.New(), - TemplateID: uuid.New(), - OwnerID: user.ID, - Name: "potato", - }) - require.NoError(t, err) + r := httptest.NewRequest("GET", "/", nil) + r.Header.Set(codersdk.SessionTokenHeader, token) ctx := chi.NewRouteContext() - ctx.URLParams.Add("user", userID.String()) + ctx.URLParams.Add("user", user.ID.String()) ctx.URLParams.Add("workspace", workspace.Name) r = r.WithContext(context.WithValue(r.Context(), chi.RouteCtxKey, ctx)) return r, workspace @@ -121,13 +91,12 @@ func TestWorkspaceBuildParam(t *testing.T) { }) r, workspace := setupAuthentication(db) - workspaceBuild, err := db.InsertWorkspaceBuild(context.Background(), database.InsertWorkspaceBuildParams{ - ID: uuid.New(), - WorkspaceID: workspace.ID, + workspaceBuild := dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{ Transition: database.WorkspaceTransitionStart, Reason: database.BuildReasonInitiator, + WorkspaceID: workspace.ID, }) - require.NoError(t, err) + chi.RouteContext(r.Context()).URLParams.Add("workspacebuild", workspaceBuild.ID.String()) rw := httptest.NewRecorder() rtr.ServeHTTP(rw, r) diff --git a/coderd/httpmw/workspaceparam_test.go b/coderd/httpmw/workspaceparam_test.go index 99304a7e01613..f19b045c28f54 100644 --- a/coderd/httpmw/workspaceparam_test.go +++ b/coderd/httpmw/workspaceparam_test.go @@ -10,14 +10,14 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" - "github.com/go-chi/chi/v5" "github.com/google/uuid" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/httpmw" "github.com/coder/coder/codersdk" "github.com/coder/coder/cryptorand" @@ -340,79 +340,44 @@ type setupConfig struct { func setupWorkspaceWithAgents(t testing.TB, cfg setupConfig) (database.Store, *http.Request) { t.Helper() db := dbfake.New() + var ( - id, secret = randomAPIKeyParts() - hashed = sha256.Sum256([]byte(secret)) + user = dbgen.User(t, db, database.User{}) + _, token = dbgen.APIKey(t, db, database.APIKey{ + UserID: user.ID, + }) + workspace = dbgen.Workspace(t, db, database.Workspace{ + OwnerID: user.ID, + Name: cfg.WorkspaceName, + }) + build = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{ + WorkspaceID: workspace.ID, + Transition: database.WorkspaceTransitionStart, + Reason: database.BuildReasonInitiator, + }) + job = dbgen.ProvisionerJob(t, db, database.ProvisionerJob{ + ID: build.JobID, + Type: database.ProvisionerJobTypeWorkspaceBuild, + Provisioner: database.ProvisionerTypeEcho, + StorageMethod: database.ProvisionerStorageMethodFile, + }) ) - r := httptest.NewRequest("GET", "/", nil) - r.Header.Set(codersdk.SessionTokenHeader, fmt.Sprintf("%s-%s", id, secret)) - userID := uuid.New() - username, err := cryptorand.String(8) - require.NoError(t, err) - user, err := db.InsertUser(r.Context(), database.InsertUserParams{ - ID: userID, - Email: "testaccount@coder.com", - HashedPassword: hashed[:], - Username: username, - CreatedAt: database.Now(), - UpdatedAt: database.Now(), - LoginType: database.LoginTypePassword, - }) - require.NoError(t, err) - - _, err = db.InsertAPIKey(r.Context(), database.InsertAPIKeyParams{ - ID: id, - UserID: user.ID, - HashedSecret: hashed[:], - LastUsed: database.Now(), - ExpiresAt: database.Now().Add(time.Minute), - LoginType: database.LoginTypePassword, - Scope: database.APIKeyScopeAll, - }) - require.NoError(t, err) - - workspace, err := db.InsertWorkspace(context.Background(), database.InsertWorkspaceParams{ - ID: uuid.New(), - TemplateID: uuid.New(), - OwnerID: user.ID, - Name: cfg.WorkspaceName, - }) - require.NoError(t, err) - - build, err := db.InsertWorkspaceBuild(context.Background(), database.InsertWorkspaceBuildParams{ - ID: uuid.New(), - WorkspaceID: workspace.ID, - JobID: uuid.New(), - Transition: database.WorkspaceTransitionStart, - Reason: database.BuildReasonInitiator, - }) - require.NoError(t, err) - - job, err := db.InsertProvisionerJob(context.Background(), database.InsertProvisionerJobParams{ - ID: build.JobID, - Type: database.ProvisionerJobTypeWorkspaceBuild, - Provisioner: database.ProvisionerTypeEcho, - StorageMethod: database.ProvisionerStorageMethodFile, - }) - require.NoError(t, err) + r := httptest.NewRequest("GET", "/", nil) + r.Header.Set(codersdk.SessionTokenHeader, token) for resourceName, agentNames := range cfg.Agents { - resource, err := db.InsertWorkspaceResource(context.Background(), database.InsertWorkspaceResourceParams{ - ID: uuid.New(), + resource := dbgen.WorkspaceResource(t, db, database.WorkspaceResource{ JobID: job.ID, Name: resourceName, Transition: database.WorkspaceTransitionStart, }) - require.NoError(t, err) for _, name := range agentNames { - _, err = db.InsertWorkspaceAgent(context.Background(), database.InsertWorkspaceAgentParams{ - ID: uuid.New(), + _ = dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{ ResourceID: resource.ID, Name: name, }) - require.NoError(t, err) } } diff --git a/coderd/metricscache/metricscache_test.go b/coderd/metricscache/metricscache_test.go index 322cabf779eda..d3bfdcab64db3 100644 --- a/coderd/metricscache/metricscache_test.go +++ b/coderd/metricscache/metricscache_test.go @@ -12,6 +12,7 @@ import ( "cdr.dev/slog/sloggers/slogtest" "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/metricscache" "github.com/coder/coder/codersdk" "github.com/coder/coder/testutil" @@ -168,32 +169,30 @@ func TestCache_TemplateUsers(t *testing.T) { defer cache.Close() - templateID := uuid.New() - db.InsertTemplate(context.Background(), database.InsertTemplateParams{ - ID: templateID, + template := dbgen.Template(t, db, database.Template{ Provisioner: database.ProvisionerTypeEcho, }) - gotUniqueUsers, ok := cache.TemplateUniqueUsers(templateID) + gotUniqueUsers, ok := cache.TemplateUniqueUsers(template.ID) require.False(t, ok, "template shouldn't have loaded yet") require.EqualValues(t, -1, gotUniqueUsers) for _, row := range tt.args.rows { - row.TemplateID = templateID + row.TemplateID = template.ID db.InsertAgentStat(context.Background(), row) } require.Eventuallyf(t, func() bool { - _, ok := cache.TemplateDAUs(templateID) + _, ok := cache.TemplateDAUs(template.ID) return ok }, testutil.WaitShort, testutil.IntervalMedium, "TemplateDAUs never populated", ) - gotUniqueUsers, ok = cache.TemplateUniqueUsers(templateID) + gotUniqueUsers, ok = cache.TemplateUniqueUsers(template.ID) require.True(t, ok) - gotEntries, ok := cache.TemplateDAUs(templateID) + gotEntries, ok := cache.TemplateDAUs(template.ID) require.True(t, ok) require.Equal(t, tt.want.entries, gotEntries.Entries) require.Equal(t, tt.want.uniqueUsers, gotUniqueUsers) diff --git a/coderd/parameter/compute_test.go b/coderd/parameter/compute_test.go index 40d0292f1c386..c6b43f8255817 100644 --- a/coderd/parameter/compute_test.go +++ b/coderd/parameter/compute_test.go @@ -9,8 +9,8 @@ import ( "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/parameter" - "github.com/coder/coder/cryptorand" ) func TestCompute(t *testing.T) { @@ -38,22 +38,16 @@ func TestCompute(t *testing.T) { if opts.DefaultDestinationScheme == "" { opts.DefaultDestinationScheme = database.ParameterDestinationSchemeEnvironmentVariable } - name, err := cryptorand.String(8) - require.NoError(t, err) - sourceValue, err := cryptorand.String(8) - require.NoError(t, err) - param, err := db.InsertParameterSchema(context.Background(), database.InsertParameterSchemaParams{ - ID: uuid.New(), - Name: name, + + param := dbgen.ParameterSchema(t, db, database.ParameterSchema{ JobID: opts.TemplateImportJobID, DefaultSourceScheme: database.ParameterSourceSchemeData, - DefaultSourceValue: sourceValue, AllowOverrideSource: opts.AllowOverrideSource, AllowOverrideDestination: opts.AllowOverrideDestination, DefaultDestinationScheme: opts.DefaultDestinationScheme, ValidationTypeSystem: database.ParameterTypeSystemNone, }) - require.NoError(t, err) + return param } @@ -61,15 +55,12 @@ func TestCompute(t *testing.T) { t.Parallel() db := dbfake.New() scope := generateScope() - _, err := db.InsertParameterSchema(context.Background(), database.InsertParameterSchemaParams{ - ID: uuid.New(), + _ = dbgen.ParameterSchema(t, db, database.ParameterSchema{ JobID: scope.TemplateImportJobID, - Name: "hey", DefaultSourceScheme: database.ParameterSourceSchemeNone, DefaultDestinationScheme: database.ParameterDestinationSchemeNone, ValidationTypeSystem: database.ParameterTypeSystemNone, }) - require.NoError(t, err) computed, err := parameter.Compute(context.Background(), db, scope, nil) require.NoError(t, err) require.Len(t, computed, 0) @@ -100,8 +91,7 @@ func TestCompute(t *testing.T) { parameterSchema := generateParameter(t, db, parameterOptions{ TemplateImportJobID: scope.TemplateImportJobID, }) - value, err := db.InsertParameterValue(context.Background(), database.InsertParameterValueParams{ - ID: uuid.New(), + value := dbgen.ParameterValue(t, db, database.ParameterValue{ Name: parameterSchema.Name, Scope: database.ParameterScopeTemplate, ScopeID: scope.TemplateID.UUID, @@ -109,7 +99,6 @@ func TestCompute(t *testing.T) { SourceValue: "nop", DestinationScheme: database.ParameterDestinationSchemeEnvironmentVariable, }) - require.NoError(t, err) computed, err := parameter.Compute(context.Background(), db, scope, nil) require.NoError(t, err) @@ -126,8 +115,7 @@ func TestCompute(t *testing.T) { TemplateImportJobID: scope.TemplateImportJobID, }) - _, err := db.InsertParameterValue(context.Background(), database.InsertParameterValueParams{ - ID: uuid.New(), + _ = dbgen.ParameterValue(t, db, database.ParameterValue{ Name: parameterSchema.Name, Scope: database.ParameterScopeWorkspace, ScopeID: scope.WorkspaceID.UUID, @@ -135,7 +123,6 @@ func TestCompute(t *testing.T) { SourceValue: "nop", DestinationScheme: database.ParameterDestinationSchemeEnvironmentVariable, }) - require.NoError(t, err) computed, err := parameter.Compute(context.Background(), db, scope, nil) require.NoError(t, err) @@ -151,8 +138,7 @@ func TestCompute(t *testing.T) { AllowOverrideSource: true, TemplateImportJobID: scope.TemplateImportJobID, }) - _, err := db.InsertParameterValue(context.Background(), database.InsertParameterValueParams{ - ID: uuid.New(), + _ = dbgen.ParameterValue(t, db, database.ParameterValue{ Name: parameterSchema.Name, Scope: database.ParameterScopeWorkspace, ScopeID: scope.WorkspaceID.UUID, @@ -160,7 +146,6 @@ func TestCompute(t *testing.T) { SourceValue: "nop", DestinationScheme: database.ParameterDestinationSchemeEnvironmentVariable, }) - require.NoError(t, err) computed, err := parameter.Compute(context.Background(), db, scope, nil) require.NoError(t, err) diff --git a/coderd/telemetry/telemetry_test.go b/coderd/telemetry/telemetry_test.go index 85a1eeae3eafb..6df7f95118bf7 100644 --- a/coderd/telemetry/telemetry_test.go +++ b/coderd/telemetry/telemetry_test.go @@ -20,6 +20,7 @@ import ( "github.com/coder/coder/buildinfo" "github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database/dbfake" + "github.com/coder/coder/coderd/database/dbgen" "github.com/coder/coder/coderd/telemetry" ) @@ -37,76 +38,35 @@ func TestTelemetry(t *testing.T) { db := dbfake.New() ctx := context.Background() - _, err = db.InsertAPIKey(ctx, database.InsertAPIKeyParams{ - ID: uuid.NewString(), - LastUsed: database.Now(), - Scope: database.APIKeyScopeAll, - LoginType: database.LoginTypePassword, - }) - assert.NoError(t, err) - _, err = db.InsertParameterSchema(ctx, database.InsertParameterSchemaParams{ - ID: uuid.New(), - CreatedAt: database.Now(), + _, _ = dbgen.APIKey(t, db, database.APIKey{}) + _ = dbgen.ParameterSchema(t, db, database.ParameterSchema{ DefaultSourceScheme: database.ParameterSourceSchemeNone, DefaultDestinationScheme: database.ParameterDestinationSchemeNone, ValidationTypeSystem: database.ParameterTypeSystemNone, }) - assert.NoError(t, err) - _, err = db.InsertProvisionerJob(ctx, database.InsertProvisionerJobParams{ - ID: uuid.New(), - CreatedAt: database.Now(), + _ = dbgen.ProvisionerJob(t, db, database.ProvisionerJob{ Provisioner: database.ProvisionerTypeTerraform, StorageMethod: database.ProvisionerStorageMethodFile, Type: database.ProvisionerJobTypeTemplateVersionDryRun, }) - assert.NoError(t, err) - _, err = db.InsertTemplate(ctx, database.InsertTemplateParams{ - ID: uuid.New(), - CreatedAt: database.Now(), + _ = dbgen.Template(t, db, database.Template{ Provisioner: database.ProvisionerTypeTerraform, }) - assert.NoError(t, err) - _, err = db.InsertTemplateVersion(ctx, database.InsertTemplateVersionParams{ - ID: uuid.New(), - CreatedAt: database.Now(), - }) - assert.NoError(t, err) - _, err = db.InsertUser(ctx, database.InsertUserParams{ - ID: uuid.New(), - CreatedAt: database.Now(), - LoginType: database.LoginTypePassword, - }) - assert.NoError(t, err) - _, err = db.InsertWorkspace(ctx, database.InsertWorkspaceParams{ - ID: uuid.New(), - CreatedAt: database.Now(), - }) - assert.NoError(t, err) - _, err = db.InsertWorkspaceApp(ctx, database.InsertWorkspaceAppParams{ - ID: uuid.New(), - CreatedAt: database.Now(), + _ = dbgen.TemplateVersion(t, db, database.TemplateVersion{}) + _ = dbgen.User(t, db, database.User{}) + _ = dbgen.Workspace(t, db, database.Workspace{}) + _ = dbgen.WorkspaceApp(t, db, database.WorkspaceApp{ SharingLevel: database.AppSharingLevelOwner, Health: database.WorkspaceAppHealthDisabled, }) - assert.NoError(t, err) - _, err = db.InsertWorkspaceAgent(ctx, database.InsertWorkspaceAgentParams{ - ID: uuid.New(), - CreatedAt: database.Now(), - }) - assert.NoError(t, err) - _, err = db.InsertWorkspaceBuild(ctx, database.InsertWorkspaceBuildParams{ - ID: uuid.New(), - CreatedAt: database.Now(), + _ = dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{}) + _ = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{ Transition: database.WorkspaceTransitionStart, Reason: database.BuildReasonAutostart, }) - assert.NoError(t, err) - _, err = db.InsertWorkspaceResource(ctx, database.InsertWorkspaceResourceParams{ - ID: uuid.New(), - CreatedAt: database.Now(), + _ = dbgen.WorkspaceResource(t, db, database.WorkspaceResource{ Transition: database.WorkspaceTransitionStart, }) - assert.NoError(t, err) _, err = db.InsertLicense(ctx, database.InsertLicenseParams{ UploadedAt: database.Now(), JWT: "", @@ -133,13 +93,9 @@ func TestTelemetry(t *testing.T) { t.Run("HashedEmail", func(t *testing.T) { t.Parallel() db := dbfake.New() - _, err := db.InsertUser(context.Background(), database.InsertUserParams{ - ID: uuid.New(), - Email: "kyle@coder.com", - CreatedAt: database.Now(), - LoginType: database.LoginTypePassword, + _ = dbgen.User(t, db, database.User{ + Email: "kyle@coder.com", }) - require.NoError(t, err) _, snapshot := collectSnapshot(t, db) require.Len(t, snapshot.Users, 1) require.Equal(t, snapshot.Users[0].EmailHashed, "bb44bf07cf9a2db0554bba63a03d822c927deae77df101874496df5a6a3e896d@coder.com")