@@ -9,44 +9,46 @@ import (
99
1010"github.com/coder/coder/v2/coderd/database"
1111"github.com/coder/coder/v2/coderd/database/dbgen"
12- "github.com/coder/coder/v2/coderd/database/dbmem "
12+ "github.com/coder/coder/v2/coderd/database/dbtestutil "
1313)
1414
1515func TestGenerator (t * testing.T ) {
1616t .Parallel ()
1717
1818t .Run ("AuditLog" ,func (t * testing.T ) {
1919t .Parallel ()
20- db := dbmem . New ( )
20+ db , _ := dbtestutil . NewDB ( t )
2121_ = dbgen .AuditLog (t ,db , database.AuditLog {})
2222logs := must (db .GetAuditLogsOffset (context .Background (), database.GetAuditLogsOffsetParams {LimitOpt :1 }))
2323require .Len (t ,logs ,1 )
2424})
2525
2626t .Run ("APIKey" ,func (t * testing.T ) {
2727t .Parallel ()
28- db := dbmem .New ()
28+ db ,_ := dbtestutil .NewDB (t )
29+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
2930exp ,_ := dbgen .APIKey (t ,db , database.APIKey {})
3031require .Equal (t ,exp ,must (db .GetAPIKeyByID (context .Background (),exp .ID )))
3132})
3233
3334t .Run ("File" ,func (t * testing.T ) {
3435t .Parallel ()
35- db := dbmem . New ( )
36+ db , _ := dbtestutil . NewDB ( t )
3637exp := dbgen .File (t ,db , database.File {})
3738require .Equal (t ,exp ,must (db .GetFileByID (context .Background (),exp .ID )))
3839})
3940
4041t .Run ("UserLink" ,func (t * testing.T ) {
4142t .Parallel ()
42- db := dbmem .New ()
43- exp := dbgen .UserLink (t ,db , database.UserLink {})
43+ db ,_ := dbtestutil .NewDB (t )
44+ u := dbgen .User (t ,db , database.User {})
45+ exp := dbgen .UserLink (t ,db , database.UserLink {UserID :u .ID })
4446require .Equal (t ,exp ,must (db .GetUserLinkByLinkedID (context .Background (),exp .LinkedID )))
4547})
4648
4749t .Run ("GitAuthLink" ,func (t * testing.T ) {
4850t .Parallel ()
49- db := dbmem . New ( )
51+ db , _ := dbtestutil . NewDB ( t )
5052exp := dbgen .ExternalAuthLink (t ,db , database.ExternalAuthLink {})
5153require .Equal (t ,exp ,must (db .GetExternalAuthLink (context .Background (), database.GetExternalAuthLinkParams {
5254ProviderID :exp .ProviderID ,
@@ -56,50 +58,55 @@ func TestGenerator(t *testing.T) {
5658
5759t .Run ("WorkspaceResource" ,func (t * testing.T ) {
5860t .Parallel ()
59- db := dbmem .New ()
61+ db ,_ := dbtestutil .NewDB (t )
62+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
6063exp := dbgen .WorkspaceResource (t ,db , database.WorkspaceResource {})
6164require .Equal (t ,exp ,must (db .GetWorkspaceResourceByID (context .Background (),exp .ID )))
6265})
6366
6467t .Run ("WorkspaceApp" ,func (t * testing.T ) {
6568t .Parallel ()
66- db := dbmem .New ()
69+ db ,_ := dbtestutil .NewDB (t )
70+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
6771exp := dbgen .WorkspaceApp (t ,db , database.WorkspaceApp {})
6872require .Equal (t ,exp ,must (db .GetWorkspaceAppsByAgentID (context .Background (),exp .AgentID ))[0 ])
6973})
7074
7175t .Run ("WorkspaceResourceMetadata" ,func (t * testing.T ) {
7276t .Parallel ()
73- db := dbmem .New ()
77+ db ,_ := dbtestutil .NewDB (t )
78+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
7479exp := dbgen .WorkspaceResourceMetadatums (t ,db , database.WorkspaceResourceMetadatum {})
7580require .Equal (t ,exp ,must (db .GetWorkspaceResourceMetadataByResourceIDs (context .Background (), []uuid.UUID {exp [0 ].WorkspaceResourceID })))
7681})
7782
7883t .Run ("WorkspaceProxy" ,func (t * testing.T ) {
7984t .Parallel ()
80- db := dbmem . New ( )
85+ db , _ := dbtestutil . NewDB ( t )
8186exp ,secret := dbgen .WorkspaceProxy (t ,db , database.WorkspaceProxy {})
8287require .Len (t ,secret ,64 )
8388require .Equal (t ,exp ,must (db .GetWorkspaceProxyByID (context .Background (),exp .ID )))
8489})
8590
8691t .Run ("Job" ,func (t * testing.T ) {
8792t .Parallel ()
88- db := dbmem . New ( )
93+ db , _ := dbtestutil . NewDB ( t )
8994exp := dbgen .ProvisionerJob (t ,db ,nil , database.ProvisionerJob {})
9095require .Equal (t ,exp ,must (db .GetProvisionerJobByID (context .Background (),exp .ID )))
9196})
9297
9398t .Run ("Group" ,func (t * testing.T ) {
9499t .Parallel ()
95- db := dbmem .New ()
100+ db ,_ := dbtestutil .NewDB (t )
101+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
96102exp := dbgen .Group (t ,db , database.Group {})
97103require .Equal (t ,exp ,must (db .GetGroupByID (context .Background (),exp .ID )))
98104})
99105
100106t .Run ("GroupMember" ,func (t * testing.T ) {
101107t .Parallel ()
102- db := dbmem .New ()
108+ db ,_ := dbtestutil .NewDB (t )
109+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
103110g := dbgen .Group (t ,db , database.Group {})
104111u := dbgen .User (t ,db , database.User {})
105112gm := dbgen .GroupMember (t ,db , database.GroupMemberTable {GroupID :g .ID ,UserID :u .ID })
@@ -113,15 +120,17 @@ func TestGenerator(t *testing.T) {
113120
114121t .Run ("Organization" ,func (t * testing.T ) {
115122t .Parallel ()
116- db := dbmem . New ( )
123+ db , _ := dbtestutil . NewDB ( t )
117124exp := dbgen .Organization (t ,db , database.Organization {})
118125require .Equal (t ,exp ,must (db .GetOrganizationByID (context .Background (),exp .ID )))
119126})
120127
121128t .Run ("OrganizationMember" ,func (t * testing.T ) {
122129t .Parallel ()
123- db := dbmem .New ()
124- exp := dbgen .OrganizationMember (t ,db , database.OrganizationMember {})
130+ db ,_ := dbtestutil .NewDB (t )
131+ o := dbgen .Organization (t ,db , database.Organization {})
132+ u := dbgen .User (t ,db , database.User {})
133+ exp := dbgen .OrganizationMember (t ,db , database.OrganizationMember {OrganizationID :o .ID ,UserID :u .ID })
125134require .Equal (t ,exp ,must (database .ExpectOne (db .OrganizationMembers (context .Background (), database.OrganizationMembersParams {
126135OrganizationID :exp .OrganizationID ,
127136UserID :exp .UserID ,
@@ -130,63 +139,98 @@ func TestGenerator(t *testing.T) {
130139
131140t .Run ("Workspace" ,func (t * testing.T ) {
132141t .Parallel ()
133- db := dbmem .New ()
134- exp := dbgen .Workspace (t ,db , database.WorkspaceTable {})
135- require .Equal (t ,exp ,must (db .GetWorkspaceByID (context .Background (),exp .ID )).WorkspaceTable ())
142+ db ,_ := dbtestutil .NewDB (t )
143+ u := dbgen .User (t ,db , database.User {})
144+ org := dbgen .Organization (t ,db , database.Organization {})
145+ tpl := dbgen .Template (t ,db , database.Template {
146+ OrganizationID :org .ID ,
147+ CreatedBy :u .ID ,
148+ })
149+ exp := dbgen .Workspace (t ,db , database.WorkspaceTable {
150+ OwnerID :u .ID ,
151+ OrganizationID :org .ID ,
152+ TemplateID :tpl .ID ,
153+ })
154+ w := must (db .GetWorkspaceByID (context .Background (),exp .ID ))
155+ table := database.WorkspaceTable {
156+ ID :w .ID ,
157+ CreatedAt :w .CreatedAt ,
158+ UpdatedAt :w .UpdatedAt ,
159+ OwnerID :w .OwnerID ,
160+ OrganizationID :w .OrganizationID ,
161+ TemplateID :w .TemplateID ,
162+ Deleted :w .Deleted ,
163+ Name :w .Name ,
164+ AutostartSchedule :w .AutostartSchedule ,
165+ Ttl :w .Ttl ,
166+ LastUsedAt :w .LastUsedAt ,
167+ DormantAt :w .DormantAt ,
168+ DeletingAt :w .DeletingAt ,
169+ AutomaticUpdates :w .AutomaticUpdates ,
170+ Favorite :w .Favorite ,
171+ }
172+ require .Equal (t ,exp ,table )
136173})
137174
138175t .Run ("WorkspaceAgent" ,func (t * testing.T ) {
139176t .Parallel ()
140- db := dbmem .New ()
177+ db ,_ := dbtestutil .NewDB (t )
178+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
141179exp := dbgen .WorkspaceAgent (t ,db , database.WorkspaceAgent {})
142180require .Equal (t ,exp ,must (db .GetWorkspaceAgentByID (context .Background (),exp .ID )))
143181})
144182
145183t .Run ("Template" ,func (t * testing.T ) {
146184t .Parallel ()
147- db := dbmem .New ()
185+ db ,_ := dbtestutil .NewDB (t )
186+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
148187exp := dbgen .Template (t ,db , database.Template {})
149188require .Equal (t ,exp ,must (db .GetTemplateByID (context .Background (),exp .ID )))
150189})
151190
152191t .Run ("TemplateVersion" ,func (t * testing.T ) {
153192t .Parallel ()
154- db := dbmem .New ()
193+ db ,_ := dbtestutil .NewDB (t )
194+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
155195exp := dbgen .TemplateVersion (t ,db , database.TemplateVersion {})
156196require .Equal (t ,exp ,must (db .GetTemplateVersionByID (context .Background (),exp .ID )))
157197})
158198
159199t .Run ("WorkspaceBuild" ,func (t * testing.T ) {
160200t .Parallel ()
161- db := dbmem .New ()
201+ db ,_ := dbtestutil .NewDB (t )
202+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
162203exp := dbgen .WorkspaceBuild (t ,db , database.WorkspaceBuild {})
163204require .Equal (t ,exp ,must (db .GetWorkspaceBuildByID (context .Background (),exp .ID )))
164205})
165206
166207t .Run ("User" ,func (t * testing.T ) {
167208t .Parallel ()
168- db := dbmem . New ( )
209+ db , _ := dbtestutil . NewDB ( t )
169210exp := dbgen .User (t ,db , database.User {})
170211require .Equal (t ,exp ,must (db .GetUserByID (context .Background (),exp .ID )))
171212})
172213
173214t .Run ("SSHKey" ,func (t * testing.T ) {
174215t .Parallel ()
175- db := dbmem .New ()
216+ db ,_ := dbtestutil .NewDB (t )
217+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
176218exp := dbgen .GitSSHKey (t ,db , database.GitSSHKey {})
177219require .Equal (t ,exp ,must (db .GetGitSSHKey (context .Background (),exp .UserID )))
178220})
179221
180222t .Run ("WorkspaceBuildParameters" ,func (t * testing.T ) {
181223t .Parallel ()
182- db := dbmem .New ()
183- exp := dbgen .WorkspaceBuildParameters (t ,db , []database.WorkspaceBuildParameter {{}, {}, {}})
224+ db ,_ := dbtestutil .NewDB (t )
225+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
226+ exp := dbgen .WorkspaceBuildParameters (t ,db , []database.WorkspaceBuildParameter {{Name :"name1" ,Value :"value1" }, {Name :"name2" ,Value :"value2" }, {Name :"name3" ,Value :"value3" }})
184227require .Equal (t ,exp ,must (db .GetWorkspaceBuildParameters (context .Background (),exp [0 ].WorkspaceBuildID )))
185228})
186229
187230t .Run ("TemplateVersionParameter" ,func (t * testing.T ) {
188231t .Parallel ()
189- db := dbmem .New ()
232+ db ,_ := dbtestutil .NewDB (t )
233+ dbtestutil .DisableForeignKeysAndTriggers (t ,db )
190234exp := dbgen .TemplateVersionParameter (t ,db , database.TemplateVersionParameter {})
191235actual := must (db .GetTemplateVersionParameters (context .Background (),exp .TemplateVersionID ))
192236require .Len (t ,actual ,1 )