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

Commit37a859f

Browse files
authored
chore(testutil): add testutil.GetRandomName that does not return duplicates (#14020)
Fixes#13910Adds testutil.GetRandomName that replaces namesgenerator.GetRandomName but instead appends a monotonically increasing integer instead of a number between 1 and 10.
1 parent96011e1 commit37a859f

File tree

5 files changed

+78
-56
lines changed

5 files changed

+78
-56
lines changed

‎coderd/database/dbgen/dbgen.go

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313
"time"
1414

1515
"github.com/google/uuid"
16-
"github.com/moby/moby/pkg/namesgenerator"
1716
"github.com/sqlc-dev/pqtype"
1817
"github.com/stretchr/testify/require"
1918

@@ -25,6 +24,7 @@ import (
2524
"github.com/coder/coder/v2/coderd/rbac"
2625
"github.com/coder/coder/v2/coderd/rbac/policy"
2726
"github.com/coder/coder/v2/cryptorand"
27+
"github.com/coder/coder/v2/testutil"
2828
)
2929

3030
// All methods take in a 'seed' object. Any provided fields in the seed will be
@@ -82,15 +82,15 @@ func Template(t testing.TB, db database.Store, seed database.Template) database.
8282
CreatedAt:takeFirst(seed.CreatedAt,dbtime.Now()),
8383
UpdatedAt:takeFirst(seed.UpdatedAt,dbtime.Now()),
8484
OrganizationID:takeFirst(seed.OrganizationID,uuid.New()),
85-
Name:takeFirst(seed.Name,namesgenerator.GetRandomName(1)),
85+
Name:takeFirst(seed.Name,testutil.GetRandomName(t)),
8686
Provisioner:takeFirst(seed.Provisioner,database.ProvisionerTypeEcho),
8787
ActiveVersionID:takeFirst(seed.ActiveVersionID,uuid.New()),
88-
Description:takeFirst(seed.Description,namesgenerator.GetRandomName(1)),
88+
Description:takeFirst(seed.Description,testutil.GetRandomName(t)),
8989
CreatedBy:takeFirst(seed.CreatedBy,uuid.New()),
90-
Icon:takeFirst(seed.Icon,namesgenerator.GetRandomName(1)),
90+
Icon:takeFirst(seed.Icon,testutil.GetRandomName(t)),
9191
UserACL:seed.UserACL,
9292
GroupACL:seed.GroupACL,
93-
DisplayName:takeFirst(seed.DisplayName,namesgenerator.GetRandomName(1)),
93+
DisplayName:takeFirst(seed.DisplayName,testutil.GetRandomName(t)),
9494
AllowUserCancelWorkspaceJobs:seed.AllowUserCancelWorkspaceJobs,
9595
MaxPortSharingLevel:takeFirst(seed.MaxPortSharingLevel,database.AppSharingLevelOwner),
9696
})
@@ -139,7 +139,7 @@ func APIKey(t testing.TB, db database.Store, seed database.APIKey) (key database
139139
funcWorkspaceAgentPortShare(t testing.TB,db database.Store,orig database.WorkspaceAgentPortShare) database.WorkspaceAgentPortShare {
140140
ps,err:=db.UpsertWorkspaceAgentPortShare(genCtx, database.UpsertWorkspaceAgentPortShareParams{
141141
WorkspaceID:takeFirst(orig.WorkspaceID,uuid.New()),
142-
AgentName:takeFirst(orig.AgentName,namesgenerator.GetRandomName(1)),
142+
AgentName:takeFirst(orig.AgentName,testutil.GetRandomName(t)),
143143
Port:takeFirst(orig.Port,8080),
144144
ShareLevel:takeFirst(orig.ShareLevel,database.AppSharingLevelPublic),
145145
Protocol:takeFirst(orig.Protocol,database.PortShareProtocolHttp),
@@ -153,11 +153,11 @@ func WorkspaceAgent(t testing.TB, db database.Store, orig database.WorkspaceAgen
153153
ID:takeFirst(orig.ID,uuid.New()),
154154
CreatedAt:takeFirst(orig.CreatedAt,dbtime.Now()),
155155
UpdatedAt:takeFirst(orig.UpdatedAt,dbtime.Now()),
156-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
156+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
157157
ResourceID:takeFirst(orig.ResourceID,uuid.New()),
158158
AuthToken:takeFirst(orig.AuthToken,uuid.New()),
159159
AuthInstanceID: sql.NullString{
160-
String:takeFirst(orig.AuthInstanceID.String,namesgenerator.GetRandomName(1)),
160+
String:takeFirst(orig.AuthInstanceID.String,testutil.GetRandomName(t)),
161161
Valid:takeFirst(orig.AuthInstanceID.Valid,true),
162162
},
163163
Architecture:takeFirst(orig.Architecture,"amd64"),
@@ -196,7 +196,7 @@ func Workspace(t testing.TB, db database.Store, orig database.Workspace) databas
196196
OrganizationID:takeFirst(orig.OrganizationID,uuid.New()),
197197
TemplateID:takeFirst(orig.TemplateID,uuid.New()),
198198
LastUsedAt:takeFirst(orig.LastUsedAt,dbtime.Now()),
199-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
199+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
200200
AutostartSchedule:orig.AutostartSchedule,
201201
Ttl:orig.Ttl,
202202
AutomaticUpdates:takeFirst(orig.AutomaticUpdates,database.AutomaticUpdatesNever),
@@ -210,8 +210,8 @@ func WorkspaceAgentLogSource(t testing.TB, db database.Store, orig database.Work
210210
WorkspaceAgentID:takeFirst(orig.WorkspaceAgentID,uuid.New()),
211211
ID: []uuid.UUID{takeFirst(orig.ID,uuid.New())},
212212
CreatedAt:takeFirst(orig.CreatedAt,dbtime.Now()),
213-
DisplayName: []string{takeFirst(orig.DisplayName,namesgenerator.GetRandomName(1))},
214-
Icon: []string{takeFirst(orig.Icon,namesgenerator.GetRandomName(1))},
213+
DisplayName: []string{takeFirst(orig.DisplayName,testutil.GetRandomName(t))},
214+
Icon: []string{takeFirst(orig.Icon,testutil.GetRandomName(t))},
215215
})
216216
require.NoError(t,err,"insert workspace agent log source")
217217
returnsources[0]
@@ -287,9 +287,9 @@ func WorkspaceBuildParameters(t testing.TB, db database.Store, orig []database.W
287287
funcUser(t testing.TB,db database.Store,orig database.User) database.User {
288288
user,err:=db.InsertUser(genCtx, database.InsertUserParams{
289289
ID:takeFirst(orig.ID,uuid.New()),
290-
Email:takeFirst(orig.Email,namesgenerator.GetRandomName(1)),
291-
Username:takeFirst(orig.Username,namesgenerator.GetRandomName(1)),
292-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
290+
Email:takeFirst(orig.Email,testutil.GetRandomName(t)),
291+
Username:takeFirst(orig.Username,testutil.GetRandomName(t)),
292+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
293293
HashedPassword:takeFirstSlice(orig.HashedPassword, []byte(must(cryptorand.String(32)))),
294294
CreatedAt:takeFirst(orig.CreatedAt,dbtime.Now()),
295295
UpdatedAt:takeFirst(orig.UpdatedAt,dbtime.Now()),
@@ -336,9 +336,9 @@ func GitSSHKey(t testing.TB, db database.Store, orig database.GitSSHKey) databas
336336
funcOrganization(t testing.TB,db database.Store,orig database.Organization) database.Organization {
337337
org,err:=db.InsertOrganization(genCtx, database.InsertOrganizationParams{
338338
ID:takeFirst(orig.ID,uuid.New()),
339-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
340-
DisplayName:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
341-
Description:takeFirst(orig.Description,namesgenerator.GetRandomName(1)),
339+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
340+
DisplayName:takeFirst(orig.Name,testutil.GetRandomName(t)),
341+
Description:takeFirst(orig.Description,testutil.GetRandomName(t)),
342342
Icon:takeFirst(orig.Icon,""),
343343
CreatedAt:takeFirst(orig.CreatedAt,dbtime.Now()),
344344
UpdatedAt:takeFirst(orig.UpdatedAt,dbtime.Now()),
@@ -360,7 +360,7 @@ func OrganizationMember(t testing.TB, db database.Store, orig database.Organizat
360360
}
361361

362362
funcGroup(t testing.TB,db database.Store,orig database.Group) database.Group {
363-
name:=takeFirst(orig.Name,namesgenerator.GetRandomName(1))
363+
name:=takeFirst(orig.Name,testutil.GetRandomName(t))
364364
group,err:=db.InsertGroup(genCtx, database.InsertGroupParams{
365365
ID:takeFirst(orig.ID,uuid.New()),
366366
Name:name,
@@ -470,7 +470,7 @@ func ProvisionerKey(t testing.TB, db database.Store, orig database.ProvisionerKe
470470
ID:takeFirst(orig.ID,uuid.New()),
471471
CreatedAt:takeFirst(orig.CreatedAt,dbtime.Now()),
472472
OrganizationID:takeFirst(orig.OrganizationID,uuid.New()),
473-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
473+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
474474
HashedSecret:orig.HashedSecret,
475475
Tags:orig.Tags,
476476
})
@@ -483,9 +483,9 @@ func WorkspaceApp(t testing.TB, db database.Store, orig database.WorkspaceApp) d
483483
ID:takeFirst(orig.ID,uuid.New()),
484484
CreatedAt:takeFirst(orig.CreatedAt,dbtime.Now()),
485485
AgentID:takeFirst(orig.AgentID,uuid.New()),
486-
Slug:takeFirst(orig.Slug,namesgenerator.GetRandomName(1)),
487-
DisplayName:takeFirst(orig.DisplayName,namesgenerator.GetRandomName(1)),
488-
Icon:takeFirst(orig.Icon,namesgenerator.GetRandomName(1)),
486+
Slug:takeFirst(orig.Slug,testutil.GetRandomName(t)),
487+
DisplayName:takeFirst(orig.DisplayName,testutil.GetRandomName(t)),
488+
Icon:takeFirst(orig.Icon,testutil.GetRandomName(t)),
489489
Command: sql.NullString{
490490
String:takeFirst(orig.Command.String,"ls"),
491491
Valid:orig.Command.Valid,
@@ -546,7 +546,7 @@ func WorkspaceResource(t testing.TB, db database.Store, orig database.WorkspaceR
546546
JobID:takeFirst(orig.JobID,uuid.New()),
547547
Transition:takeFirst(orig.Transition,database.WorkspaceTransitionStart),
548548
Type:takeFirst(orig.Type,"fake_resource"),
549-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
549+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
550550
Hide:takeFirst(orig.Hide,false),
551551
Icon:takeFirst(orig.Icon,""),
552552
InstanceType: sql.NullString{
@@ -562,8 +562,8 @@ func WorkspaceResource(t testing.TB, db database.Store, orig database.WorkspaceR
562562
funcWorkspaceResourceMetadatums(t testing.TB,db database.Store,seed database.WorkspaceResourceMetadatum) []database.WorkspaceResourceMetadatum {
563563
meta,err:=db.InsertWorkspaceResourceMetadata(genCtx, database.InsertWorkspaceResourceMetadataParams{
564564
WorkspaceResourceID:takeFirst(seed.WorkspaceResourceID,uuid.New()),
565-
Key: []string{takeFirst(seed.Key,namesgenerator.GetRandomName(1))},
566-
Value: []string{takeFirst(seed.Value.String,namesgenerator.GetRandomName(1))},
565+
Key: []string{takeFirst(seed.Key,testutil.GetRandomName(t))},
566+
Value: []string{takeFirst(seed.Value.String,testutil.GetRandomName(t))},
567567
Sensitive: []bool{takeFirst(seed.Sensitive,false)},
568568
})
569569
require.NoError(t,err,"insert meta data")
@@ -577,9 +577,9 @@ func WorkspaceProxy(t testing.TB, db database.Store, orig database.WorkspaceProx
577577

578578
proxy,err:=db.InsertWorkspaceProxy(genCtx, database.InsertWorkspaceProxyParams{
579579
ID:takeFirst(orig.ID,uuid.New()),
580-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
581-
DisplayName:takeFirst(orig.DisplayName,namesgenerator.GetRandomName(1)),
582-
Icon:takeFirst(orig.Icon,namesgenerator.GetRandomName(1)),
580+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
581+
DisplayName:takeFirst(orig.DisplayName,testutil.GetRandomName(t)),
582+
Icon:takeFirst(orig.Icon,testutil.GetRandomName(t)),
583583
TokenHashedSecret:hashedSecret[:],
584584
CreatedAt:takeFirst(orig.CreatedAt,dbtime.Now()),
585585
UpdatedAt:takeFirst(orig.UpdatedAt,dbtime.Now()),
@@ -659,9 +659,9 @@ func TemplateVersion(t testing.TB, db database.Store, orig database.TemplateVers
659659
OrganizationID:takeFirst(orig.OrganizationID,uuid.New()),
660660
CreatedAt:takeFirst(orig.CreatedAt,dbtime.Now()),
661661
UpdatedAt:takeFirst(orig.UpdatedAt,dbtime.Now()),
662-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
662+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
663663
Message:orig.Message,
664-
Readme:takeFirst(orig.Readme,namesgenerator.GetRandomName(1)),
664+
Readme:takeFirst(orig.Readme,testutil.GetRandomName(t)),
665665
JobID:takeFirst(orig.JobID,uuid.New()),
666666
CreatedBy:takeFirst(orig.CreatedBy,uuid.New()),
667667
})
@@ -683,11 +683,11 @@ func TemplateVersion(t testing.TB, db database.Store, orig database.TemplateVers
683683
funcTemplateVersionVariable(t testing.TB,db database.Store,orig database.TemplateVersionVariable) database.TemplateVersionVariable {
684684
version,err:=db.InsertTemplateVersionVariable(genCtx, database.InsertTemplateVersionVariableParams{
685685
TemplateVersionID:takeFirst(orig.TemplateVersionID,uuid.New()),
686-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
687-
Description:takeFirst(orig.Description,namesgenerator.GetRandomName(1)),
686+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
687+
Description:takeFirst(orig.Description,testutil.GetRandomName(t)),
688688
Type:takeFirst(orig.Type,"string"),
689689
Value:takeFirst(orig.Value,""),
690-
DefaultValue:takeFirst(orig.DefaultValue,namesgenerator.GetRandomName(1)),
690+
DefaultValue:takeFirst(orig.DefaultValue,testutil.GetRandomName(t)),
691691
Required:takeFirst(orig.Required,false),
692692
Sensitive:takeFirst(orig.Sensitive,false),
693693
})
@@ -698,8 +698,8 @@ func TemplateVersionVariable(t testing.TB, db database.Store, orig database.Temp
698698
funcTemplateVersionWorkspaceTag(t testing.TB,db database.Store,orig database.TemplateVersionWorkspaceTag) database.TemplateVersionWorkspaceTag {
699699
workspaceTag,err:=db.InsertTemplateVersionWorkspaceTag(genCtx, database.InsertTemplateVersionWorkspaceTagParams{
700700
TemplateVersionID:takeFirst(orig.TemplateVersionID,uuid.New()),
701-
Key:takeFirst(orig.Key,namesgenerator.GetRandomName(1)),
702-
Value:takeFirst(orig.Value,namesgenerator.GetRandomName(1)),
701+
Key:takeFirst(orig.Key,testutil.GetRandomName(t)),
702+
Value:takeFirst(orig.Value,testutil.GetRandomName(t)),
703703
})
704704
require.NoError(t,err,"insert template version workspace tag")
705705
returnworkspaceTag
@@ -710,20 +710,20 @@ func TemplateVersionParameter(t testing.TB, db database.Store, orig database.Tem
710710

711711
version,err:=db.InsertTemplateVersionParameter(genCtx, database.InsertTemplateVersionParameterParams{
712712
TemplateVersionID:takeFirst(orig.TemplateVersionID,uuid.New()),
713-
Name:takeFirst(orig.Name,namesgenerator.GetRandomName(1)),
714-
Description:takeFirst(orig.Description,namesgenerator.GetRandomName(1)),
713+
Name:takeFirst(orig.Name,testutil.GetRandomName(t)),
714+
Description:takeFirst(orig.Description,testutil.GetRandomName(t)),
715715
Type:takeFirst(orig.Type,"string"),
716716
Mutable:takeFirst(orig.Mutable,false),
717-
DefaultValue:takeFirst(orig.DefaultValue,namesgenerator.GetRandomName(1)),
718-
Icon:takeFirst(orig.Icon,namesgenerator.GetRandomName(1)),
717+
DefaultValue:takeFirst(orig.DefaultValue,testutil.GetRandomName(t)),
718+
Icon:takeFirst(orig.Icon,testutil.GetRandomName(t)),
719719
Options:takeFirstSlice(orig.Options, []byte("[]")),
720720
ValidationRegex:takeFirst(orig.ValidationRegex,""),
721721
ValidationMin:takeFirst(orig.ValidationMin, sql.NullInt32{}),
722722
ValidationMax:takeFirst(orig.ValidationMax, sql.NullInt32{}),
723723
ValidationError:takeFirst(orig.ValidationError,""),
724724
ValidationMonotonic:takeFirst(orig.ValidationMonotonic,""),
725725
Required:takeFirst(orig.Required,false),
726-
DisplayName:takeFirst(orig.DisplayName,namesgenerator.GetRandomName(1)),
726+
DisplayName:takeFirst(orig.DisplayName,testutil.GetRandomName(t)),
727727
DisplayOrder:takeFirst(orig.DisplayOrder,0),
728728
Ephemeral:takeFirst(orig.Ephemeral,false),
729729
})
@@ -783,7 +783,7 @@ func WorkspaceAgentStat(t testing.TB, db database.Store, orig database.Workspace
783783
funcOAuth2ProviderApp(t testing.TB,db database.Store,seed database.OAuth2ProviderApp) database.OAuth2ProviderApp {
784784
app,err:=db.InsertOAuth2ProviderApp(genCtx, database.InsertOAuth2ProviderAppParams{
785785
ID:takeFirst(seed.ID,uuid.New()),
786-
Name:takeFirst(seed.Name,namesgenerator.GetRandomName(1)),
786+
Name:takeFirst(seed.Name,testutil.GetRandomName(t)),
787787
CreatedAt:takeFirst(seed.CreatedAt,dbtime.Now()),
788788
UpdatedAt:takeFirst(seed.UpdatedAt,dbtime.Now()),
789789
Icon:takeFirst(seed.Icon,""),
@@ -836,8 +836,8 @@ func OAuth2ProviderAppToken(t testing.TB, db database.Store, seed database.OAuth
836836

837837
funcCustomRole(t testing.TB,db database.Store,seed database.CustomRole) database.CustomRole {
838838
role,err:=db.UpsertCustomRole(genCtx, database.UpsertCustomRoleParams{
839-
Name:takeFirst(seed.Name,strings.ToLower(namesgenerator.GetRandomName(1))),
840-
DisplayName:namesgenerator.GetRandomName(1),
839+
Name:takeFirst(seed.Name,strings.ToLower(testutil.GetRandomName(t))),
840+
DisplayName:testutil.GetRandomName(t),
841841
OrganizationID:seed.OrganizationID,
842842
SitePermissions:takeFirstSlice(seed.SitePermissions, []database.CustomRolePermission{}),
843843
OrgPermissions:takeFirstSlice(seed.SitePermissions, []database.CustomRolePermission{}),

‎coderd/httpapi/name_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import (
44
"strings"
55
"testing"
66

7-
"github.com/moby/moby/pkg/namesgenerator"
87
"github.com/stretchr/testify/assert"
98
"github.com/stretchr/testify/require"
109

1110
"github.com/coder/coder/v2/coderd/httpapi"
11+
"github.com/coder/coder/v2/testutil"
1212
)
1313

1414
funcTestUsernameValid(t*testing.T) {
@@ -168,7 +168,7 @@ func TestGeneratedTemplateVersionNameValid(t *testing.T) {
168168
t.Parallel()
169169

170170
fori:=0;i<1000;i++ {
171-
name:=namesgenerator.GetRandomName(1)
171+
name:=testutil.GetRandomName(t)
172172
err:=httpapi.TemplateVersionNameValid(name)
173173
require.NoError(t,err,"invalid template version name: %s",name)
174174
}

‎coderd/httpmw/oauth2_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ import (
77
"net/url"
88
"testing"
99

10-
"github.com/moby/moby/pkg/namesgenerator"
1110
"github.com/stretchr/testify/assert"
1211
"github.com/stretchr/testify/require"
1312
"golang.org/x/oauth2"
1413

1514
"github.com/coder/coder/v2/coderd/httpmw"
1615
"github.com/coder/coder/v2/codersdk"
16+
"github.com/coder/coder/v2/testutil"
1717
)
1818

1919
typetestOAuth2Providerstruct {
@@ -128,7 +128,7 @@ func TestOAuth2(t *testing.T) {
128128
})
129129
t.Run("PresetConvertState",func(t*testing.T) {
130130
t.Parallel()
131-
customState:=namesgenerator.GetRandomName(1)
131+
customState:=testutil.GetRandomName(t)
132132
req:=httptest.NewRequest("GET","/?oidc_merge_state="+customState+"&redirect="+url.QueryEscape("/dashboard"),nil)
133133
res:=httptest.NewRecorder()
134134
tp:=newTestOAuth2Provider(t,oauth2.AccessTypeOffline)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp