Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit277c2c7

Browse files
authored
chore(coderd/prometheusmetrics): remove dbmem from tests (#18238)
1 parentbb2c195 commit277c2c7

File tree

1 file changed

+115
-73
lines changed

1 file changed

+115
-73
lines changed

‎coderd/prometheusmetrics/prometheusmetrics_test.go‎

Lines changed: 115 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"database/sql"
66
"encoding/json"
7+
"errors"
78
"fmt"
89
"os"
910
"reflect"
@@ -25,7 +26,6 @@ import (
2526
"github.com/coder/coder/v2/coderd/coderdtest"
2627
"github.com/coder/coder/v2/coderd/database"
2728
"github.com/coder/coder/v2/coderd/database/dbgen"
28-
"github.com/coder/coder/v2/coderd/database/dbmem"
2929
"github.com/coder/coder/v2/coderd/database/dbtestutil"
3030
"github.com/coder/coder/v2/coderd/database/dbtime"
3131
"github.com/coder/coder/v2/coderd/prometheusmetrics"
@@ -51,13 +51,15 @@ func TestActiveUsers(t *testing.T) {
5151
}{{
5252
Name:"None",
5353
Database:func(t*testing.T) database.Store {
54-
returndbmem.New()
54+
db,_:=dbtestutil.NewDB(t)
55+
returndb
5556
},
5657
Count:0,
5758
}, {
5859
Name:"One",
5960
Database:func(t*testing.T) database.Store {
60-
db:=dbmem.New()
61+
db,_:=dbtestutil.NewDB(t)
62+
dbtestutil.DisableForeignKeysAndTriggers(t,db)
6163
dbgen.APIKey(t,db, database.APIKey{
6264
LastUsed:dbtime.Now(),
6365
})
@@ -67,7 +69,8 @@ func TestActiveUsers(t *testing.T) {
6769
}, {
6870
Name:"OneWithExpired",
6971
Database:func(t*testing.T) database.Store {
70-
db:=dbmem.New()
72+
db,_:=dbtestutil.NewDB(t)
73+
dbtestutil.DisableForeignKeysAndTriggers(t,db)
7174

7275
dbgen.APIKey(t,db, database.APIKey{
7376
LastUsed:dbtime.Now(),
@@ -84,7 +87,8 @@ func TestActiveUsers(t *testing.T) {
8487
}, {
8588
Name:"Multiple",
8689
Database:func(t*testing.T) database.Store {
87-
db:=dbmem.New()
90+
db,_:=dbtestutil.NewDB(t)
91+
dbtestutil.DisableForeignKeysAndTriggers(t,db)
8892
dbgen.APIKey(t,db, database.APIKey{
8993
LastUsed:dbtime.Now(),
9094
})
@@ -123,21 +127,22 @@ func TestUsers(t *testing.T) {
123127
}{{
124128
Name:"None",
125129
Database:func(t*testing.T) database.Store {
126-
returndbmem.New()
130+
db,_:=dbtestutil.NewDB(t)
131+
returndb
127132
},
128133
Count:map[database.UserStatus]int{},
129134
}, {
130135
Name:"One",
131136
Database:func(t*testing.T) database.Store {
132-
db:=dbmem.New()
137+
db,_:=dbtestutil.NewDB(t)
133138
dbgen.User(t,db, database.User{Status:database.UserStatusActive})
134139
returndb
135140
},
136141
Count:map[database.UserStatus]int{database.UserStatusActive:1},
137142
}, {
138143
Name:"MultipleStatuses",
139144
Database:func(t*testing.T) database.Store {
140-
db:=dbmem.New()
145+
db,_:=dbtestutil.NewDB(t)
141146

142147
dbgen.User(t,db, database.User{Status:database.UserStatusActive})
143148
dbgen.User(t,db, database.User{Status:database.UserStatusDormant})
@@ -148,7 +153,7 @@ func TestUsers(t *testing.T) {
148153
}, {
149154
Name:"MultipleActive",
150155
Database:func(t*testing.T) database.Store {
151-
db:=dbmem.New()
156+
db,_:=dbtestutil.NewDB(t)
152157
dbgen.User(t,db, database.User{Status:database.UserStatusActive})
153158
dbgen.User(t,db, database.User{Status:database.UserStatusActive})
154159
dbgen.User(t,db, database.User{Status:database.UserStatusActive})
@@ -216,20 +221,25 @@ func TestWorkspaceLatestBuildTotals(t *testing.T) {
216221
Totalint
217222
Statusmap[codersdk.ProvisionerJobStatus]int
218223
}{{
219-
Name:"None",
220-
Database:dbmem.New,
221-
Total:0,
224+
Name:"None",
225+
Database:func() database.Store {
226+
db,_:=dbtestutil.NewDB(t)
227+
returndb
228+
},
229+
Total:0,
222230
}, {
223231
Name:"Multiple",
224232
Database:func() database.Store {
225-
db:=dbmem.New()
226-
insertCanceled(t,db)
227-
insertFailed(t,db)
228-
insertFailed(t,db)
229-
insertSuccess(t,db)
230-
insertSuccess(t,db)
231-
insertSuccess(t,db)
232-
insertRunning(t,db)
233+
db,_:=dbtestutil.NewDB(t)
234+
u:=dbgen.User(t,db, database.User{})
235+
org:=dbgen.Organization(t,db, database.Organization{})
236+
insertCanceled(t,db,u,org)
237+
insertFailed(t,db,u,org)
238+
insertFailed(t,db,u,org)
239+
insertSuccess(t,db,u,org)
240+
insertSuccess(t,db,u,org)
241+
insertSuccess(t,db,u,org)
242+
insertRunning(t,db,u,org)
233243
returndb
234244
},
235245
Total:7,
@@ -287,21 +297,26 @@ func TestWorkspaceLatestBuildStatuses(t *testing.T) {
287297
ExpectedWorkspacesint
288298
ExpectedStatusesmap[codersdk.ProvisionerJobStatus]int
289299
}{{
290-
Name:"None",
291-
Database:dbmem.New,
300+
Name:"None",
301+
Database:func() database.Store {
302+
db,_:=dbtestutil.NewDB(t)
303+
returndb
304+
},
292305
ExpectedWorkspaces:0,
293306
}, {
294307
Name:"Multiple",
295308
Database:func() database.Store {
296-
db:=dbmem.New()
297-
insertTemplates(t,db)
298-
insertCanceled(t,db)
299-
insertFailed(t,db)
300-
insertFailed(t,db)
301-
insertSuccess(t,db)
302-
insertSuccess(t,db)
303-
insertSuccess(t,db)
304-
insertRunning(t,db)
309+
db,_:=dbtestutil.NewDB(t)
310+
u:=dbgen.User(t,db, database.User{})
311+
org:=dbgen.Organization(t,db, database.Organization{})
312+
insertTemplates(t,db,u,org)
313+
insertCanceled(t,db,u,org)
314+
insertFailed(t,db,u,org)
315+
insertFailed(t,db,u,org)
316+
insertSuccess(t,db,u,org)
317+
insertSuccess(t,db,u,org)
318+
insertSuccess(t,db,u,org)
319+
insertRunning(t,db,u,org)
305320
returndb
306321
},
307322
ExpectedWorkspaces:7,
@@ -727,76 +742,102 @@ var (
727742
templateVersionB=uuid.New()
728743
)
729744

730-
funcinsertTemplates(t*testing.T,db database.Store) {
745+
funcinsertTemplates(t*testing.T,db database.Store,u database.User,org database.Organization) {
731746
require.NoError(t,db.InsertTemplate(context.Background(), database.InsertTemplateParams{
732747
ID:templateA,
733748
Name:"template-a",
734749
Provisioner:database.ProvisionerTypeTerraform,
735750
MaxPortSharingLevel:database.AppSharingLevelAuthenticated,
751+
CreatedBy:u.ID,
752+
OrganizationID:org.ID,
736753
}))
754+
pj:=dbgen.ProvisionerJob(t,db,nil, database.ProvisionerJob{})
737755

738756
require.NoError(t,db.InsertTemplateVersion(context.Background(), database.InsertTemplateVersionParams{
739-
ID:templateVersionA,
740-
TemplateID: uuid.NullUUID{UUID:templateA},
741-
Name:"version-1a",
757+
ID:templateVersionA,
758+
TemplateID: uuid.NullUUID{UUID:templateA},
759+
Name:"version-1a",
760+
JobID:pj.ID,
761+
OrganizationID:org.ID,
762+
CreatedBy:u.ID,
742763
}))
743764

744765
require.NoError(t,db.InsertTemplate(context.Background(), database.InsertTemplateParams{
745766
ID:templateB,
746767
Name:"template-b",
747768
Provisioner:database.ProvisionerTypeTerraform,
748769
MaxPortSharingLevel:database.AppSharingLevelAuthenticated,
770+
CreatedBy:u.ID,
771+
OrganizationID:org.ID,
749772
}))
750773

751774
require.NoError(t,db.InsertTemplateVersion(context.Background(), database.InsertTemplateVersionParams{
752-
ID:templateVersionB,
753-
TemplateID: uuid.NullUUID{UUID:templateB},
754-
Name:"version-1b",
775+
ID:templateVersionB,
776+
TemplateID: uuid.NullUUID{UUID:templateB},
777+
Name:"version-1b",
778+
JobID:pj.ID,
779+
OrganizationID:org.ID,
780+
CreatedBy:u.ID,
755781
}))
756782
}
757783

758-
funcinsertUser(t*testing.T,db database.Store) database.User {
759-
username,err:=cryptorand.String(8)
760-
require.NoError(t,err)
761-
762-
user,err:=db.InsertUser(context.Background(), database.InsertUserParams{
763-
ID:uuid.New(),
764-
Username:username,
765-
LoginType:database.LoginTypeNone,
766-
})
784+
funcinsertRunning(t*testing.T,db database.Store,u database.User,org database.Organization) database.ProvisionerJob {
785+
vartemplateID,templateVersionID uuid.UUID
786+
rnd,err:=cryptorand.Intn(10)
767787
require.NoError(t,err)
768788

769-
returnuser
770-
}
789+
pairs:= []struct {
790+
tplID uuid.UUID
791+
versionID uuid.UUID
792+
}{
793+
{templateA,templateVersionA},
794+
{templateB,templateVersionB},
795+
}
796+
for_,pair:=rangepairs {
797+
_,err:=db.GetTemplateByID(context.Background(),pair.tplID)
798+
iferrors.Is(err,sql.ErrNoRows) {
799+
_=dbgen.Template(t,db, database.Template{
800+
ID:pair.tplID,
801+
OrganizationID:org.ID,
802+
CreatedBy:u.ID,
803+
})
804+
_=dbgen.TemplateVersion(t,db, database.TemplateVersion{
805+
ID:pair.versionID,
806+
OrganizationID:org.ID,
807+
CreatedBy:u.ID,
808+
})
809+
}else {
810+
require.NoError(t,err)
811+
}
812+
}
771813

772-
funcinsertRunning(t*testing.T,db database.Store) database.ProvisionerJob {
773-
vartemplate,templateVersion uuid.UUID
774-
rnd,err:=cryptorand.Intn(10)
775-
require.NoError(t,err)
776814
ifrnd>5 {
777-
template=templateB
778-
templateVersion=templateVersionB
815+
templateID=templateB
816+
templateVersionID=templateVersionB
779817
}else {
780-
template=templateA
781-
templateVersion=templateVersionA
818+
templateID=templateA
819+
templateVersionID=templateVersionA
782820
}
783821

784822
workspace,err:=db.InsertWorkspace(context.Background(), database.InsertWorkspaceParams{
785823
ID:uuid.New(),
786-
OwnerID:insertUser(t,db).ID,
824+
OwnerID:u.ID,
787825
Name:uuid.NewString(),
788-
TemplateID:template,
826+
TemplateID:templateID,
789827
AutomaticUpdates:database.AutomaticUpdatesNever,
828+
OrganizationID:org.ID,
790829
})
791830
require.NoError(t,err)
792831

793832
job,err:=db.InsertProvisionerJob(context.Background(), database.InsertProvisionerJobParams{
794-
ID:uuid.New(),
795-
CreatedAt:dbtime.Now(),
796-
UpdatedAt:dbtime.Now(),
797-
Provisioner:database.ProvisionerTypeEcho,
798-
StorageMethod:database.ProvisionerStorageMethodFile,
799-
Type:database.ProvisionerJobTypeWorkspaceBuild,
833+
ID:uuid.New(),
834+
CreatedAt:dbtime.Now(),
835+
UpdatedAt:dbtime.Now(),
836+
Provisioner:database.ProvisionerTypeEcho,
837+
StorageMethod:database.ProvisionerStorageMethodFile,
838+
Type:database.ProvisionerJobTypeWorkspaceBuild,
839+
Input:json.RawMessage("{}"),
840+
OrganizationID:org.ID,
800841
})
801842
require.NoError(t,err)
802843
err=db.InsertWorkspaceBuild(context.Background(), database.InsertWorkspaceBuildParams{
@@ -806,7 +847,7 @@ func insertRunning(t *testing.T, db database.Store) database.ProvisionerJob {
806847
BuildNumber:1,
807848
Transition:database.WorkspaceTransitionStart,
808849
Reason:database.BuildReasonInitiator,
809-
TemplateVersionID:templateVersion,
850+
TemplateVersionID:templateVersionID,
810851
})
811852
require.NoError(t,err)
812853
// This marks the job as started.
@@ -816,14 +857,15 @@ func insertRunning(t *testing.T, db database.Store) database.ProvisionerJob {
816857
Time:dbtime.Now(),
817858
Valid:true,
818859
},
819-
Types: []database.ProvisionerType{database.ProvisionerTypeEcho},
860+
Types: []database.ProvisionerType{database.ProvisionerTypeEcho},
861+
ProvisionerTags:must(json.Marshal(job.Tags)),
820862
})
821863
require.NoError(t,err)
822864
returnjob
823865
}
824866

825-
funcinsertCanceled(t*testing.T,db database.Store) {
826-
job:=insertRunning(t,db)
867+
funcinsertCanceled(t*testing.T,db database.Store,u database.User,org database.Organization) {
868+
job:=insertRunning(t,db,u,org)
827869
err:=db.UpdateProvisionerJobWithCancelByID(context.Background(), database.UpdateProvisionerJobWithCancelByIDParams{
828870
ID:job.ID,
829871
CanceledAt: sql.NullTime{
@@ -842,8 +884,8 @@ func insertCanceled(t *testing.T, db database.Store) {
842884
require.NoError(t,err)
843885
}
844886

845-
funcinsertFailed(t*testing.T,db database.Store) {
846-
job:=insertRunning(t,db)
887+
funcinsertFailed(t*testing.T,db database.Store,u database.User,org database.Organization) {
888+
job:=insertRunning(t,db,u,org)
847889
err:=db.UpdateProvisionerJobWithCompleteByID(context.Background(), database.UpdateProvisionerJobWithCompleteByIDParams{
848890
ID:job.ID,
849891
CompletedAt: sql.NullTime{
@@ -858,8 +900,8 @@ func insertFailed(t *testing.T, db database.Store) {
858900
require.NoError(t,err)
859901
}
860902

861-
funcinsertSuccess(t*testing.T,db database.Store) {
862-
job:=insertRunning(t,db)
903+
funcinsertSuccess(t*testing.T,db database.Store,u database.User,org database.Organization) {
904+
job:=insertRunning(t,db,u,org)
863905
err:=db.UpdateProvisionerJobWithCompleteByID(context.Background(), database.UpdateProvisionerJobWithCompleteByIDParams{
864906
ID:job.ID,
865907
CompletedAt: sql.NullTime{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp