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

Commitf32f7c6

Browse files
authored
test(enterprise/coderd): fix ctx init in multiple workspace tests (#16176)
1 parent0697308 commitf32f7c6

File tree

1 file changed

+38
-26
lines changed

1 file changed

+38
-26
lines changed

‎enterprise/coderd/workspaces_test.go

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ func TestCreateWorkspace(t *testing.T) {
7373

7474
other,_:=coderdtest.CreateAnotherUser(t,client,first.OrganizationID,rbac.RoleMember(),rbac.RoleOwner())
7575

76-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
77-
defercancel()
76+
ctx:=testutil.Context(t,testutil.WaitLong)
7877

7978
org,err:=other.CreateOrganization(ctx, codersdk.CreateOrganizationRequest{
8079
Name:"another",
@@ -83,6 +82,8 @@ func TestCreateWorkspace(t *testing.T) {
8382
version:=coderdtest.CreateTemplateVersion(t,other,org.ID,nil)
8483
template:=coderdtest.CreateTemplate(t,other,org.ID,version.ID)
8584

85+
ctx=testutil.Context(t,testutil.WaitLong)// Reset the context to avoid timeouts.
86+
8687
_,err=client.CreateWorkspace(ctx,first.OrganizationID,codersdk.Me, codersdk.CreateWorkspaceRequest{
8788
TemplateID:template.ID,
8889
Name:"workspace",
@@ -108,8 +109,7 @@ func TestCreateWorkspace(t *testing.T) {
108109
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
109110
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
110111

111-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
112-
defercancel()
112+
ctx:=testutil.Context(t,testutil.WaitLong)
113113

114114
acl,err:=templateAdminClient.TemplateACL(ctx,template.ID)
115115
require.NoError(t,err)
@@ -163,8 +163,7 @@ func TestCreateWorkspace(t *testing.T) {
163163
coderdtest.AwaitTemplateVersionJobCompleted(t,templateAdmin,version.ID)
164164
template:=coderdtest.CreateTemplate(t,templateAdmin,owner.OrganizationID,version.ID)
165165

166-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
167-
defercancel()
166+
ctx:=testutil.Context(t,testutil.WaitLong)
168167

169168
// Remove everyone access
170169
err:=templateAdmin.UpdateTemplateACL(ctx,template.ID, codersdk.UpdateTemplateACL{
@@ -213,8 +212,7 @@ func TestCreateUserWorkspace(t *testing.T) {
213212

214213
other,_:=coderdtest.CreateAnotherUser(t,client,first.OrganizationID,rbac.RoleMember(),rbac.RoleOwner())
215214

216-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
217-
defercancel()
215+
ctx:=testutil.Context(t,testutil.WaitLong)
218216

219217
org,err:=other.CreateOrganization(ctx, codersdk.CreateOrganizationRequest{
220218
Name:"another",
@@ -223,6 +221,8 @@ func TestCreateUserWorkspace(t *testing.T) {
223221
version:=coderdtest.CreateTemplateVersion(t,other,org.ID,nil)
224222
template:=coderdtest.CreateTemplate(t,other,org.ID,version.ID)
225223

224+
ctx=testutil.Context(t,testutil.WaitLong)// Reset the context to avoid timeouts.
225+
226226
_,err=client.CreateUserWorkspace(ctx,codersdk.Me, codersdk.CreateWorkspaceRequest{
227227
TemplateID:template.ID,
228228
Name:"workspace",
@@ -248,8 +248,7 @@ func TestCreateUserWorkspace(t *testing.T) {
248248
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
249249
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
250250

251-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
252-
defercancel()
251+
ctx:=testutil.Context(t,testutil.WaitLong)
253252

254253
acl,err:=templateAdminClient.TemplateACL(ctx,template.ID)
255254
require.NoError(t,err)
@@ -431,7 +430,6 @@ func TestWorkspaceAutobuild(t *testing.T) {
431430
t.Parallel()
432431

433432
var (
434-
ctx=testutil.Context(t,testutil.WaitMedium)
435433
ticker=make(chan time.Time)
436434
statCh=make(chan autobuild.Stats)
437435
inactiveTTL=time.Minute
@@ -492,6 +490,8 @@ func TestWorkspaceAutobuild(t *testing.T) {
492490
require.Equal(t,database.AuditActionWrite,alog.Action)
493491
require.Equal(t,workspace.Name,alog.ResourceTarget)
494492

493+
ctx:=testutil.Context(t,testutil.WaitMedium)
494+
495495
dormantLastUsedAt:=ws.LastUsedAt
496496
// nolint:gocritic // this test is not testing RBAC.
497497
err:=client.UpdateWorkspaceDormancy(ctx,ws.ID, codersdk.UpdateWorkspaceDormancy{Dormant:false})
@@ -861,7 +861,6 @@ func TestWorkspaceAutobuild(t *testing.T) {
861861
t.Parallel()
862862

863863
var (
864-
ctx=testutil.Context(t,testutil.WaitMedium)
865864
tickCh=make(chan time.Time)
866865
statsCh=make(chan autobuild.Stats)
867866
inactiveTTL=time.Minute
@@ -909,6 +908,8 @@ func TestWorkspaceAutobuild(t *testing.T) {
909908
ws=coderdtest.MustWorkspace(t,client,ws.ID)
910909
coderdtest.AwaitWorkspaceBuildJobCompleted(t,client,ws.LatestBuild.ID)
911910

911+
ctx:=testutil.Context(t,testutil.WaitMedium)
912+
912913
// Now that we've validated that the workspace is eligible for autostart
913914
// lets cause it to become dormant.
914915
_,err=client.UpdateTemplateMeta(ctx,template.ID, codersdk.UpdateTemplateMeta{
@@ -944,7 +945,6 @@ func TestWorkspaceAutobuild(t *testing.T) {
944945
ticker=make(chan time.Time)
945946
statCh=make(chan autobuild.Stats)
946947
transitionTTL=time.Minute
947-
ctx=testutil.Context(t,testutil.WaitMedium)
948948
)
949949

950950
logger:=slogtest.Make(t,&slogtest.Options{IgnoreErrors:true}).Leveled(slog.LevelDebug)
@@ -984,6 +984,8 @@ func TestWorkspaceAutobuild(t *testing.T) {
984984
})
985985
coderdtest.AwaitTemplateVersionJobCompleted(t,client,version.ID)
986986

987+
ctx:=testutil.Context(t,testutil.WaitMedium)
988+
987989
// Try to delete the workspace. This simulates a "failed" autodelete.
988990
build,err:=templateAdmin.CreateWorkspaceBuild(ctx,ws.ID, codersdk.CreateWorkspaceBuildRequest{
989991
Transition:codersdk.WorkspaceTransitionDelete,
@@ -994,6 +996,8 @@ func TestWorkspaceAutobuild(t *testing.T) {
994996
build=coderdtest.AwaitWorkspaceBuildJobCompleted(t,client,build.ID)
995997
require.NotEmpty(t,build.Job.Error)
996998

999+
ctx=testutil.Context(t,testutil.WaitLong)// Reset the context to avoid timeouts.
1000+
9971001
// Update our workspace to be dormant so that it qualifies for auto-deletion.
9981002
err=templateAdmin.UpdateWorkspaceDormancy(ctx,ws.ID, codersdk.UpdateWorkspaceDormancy{
9991003
Dormant:true,
@@ -1030,7 +1034,6 @@ func TestWorkspaceAutobuild(t *testing.T) {
10301034
var (
10311035
tickCh=make(chan time.Time)
10321036
statsCh=make(chan autobuild.Stats)
1033-
ctx=testutil.Context(t,testutil.WaitMedium)
10341037
)
10351038

10361039
logger:=slogtest.Make(t,&slogtest.Options{IgnoreErrors:true}).Leveled(slog.LevelDebug)
@@ -1070,6 +1073,8 @@ func TestWorkspaceAutobuild(t *testing.T) {
10701073
})
10711074
coderdtest.AwaitTemplateVersionJobCompleted(t,client,version2.ID)
10721075

1076+
ctx:=testutil.Context(t,testutil.WaitMedium)
1077+
10731078
// Make sure to promote it.
10741079
err=client.UpdateActiveTemplateVersion(ctx,template.ID, codersdk.UpdateActiveTemplateVersion{
10751080
ID:version2.ID,
@@ -1089,6 +1094,8 @@ func TestWorkspaceAutobuild(t *testing.T) {
10891094
firstBuild:=coderdtest.AwaitWorkspaceBuildJobCompleted(t,client,started.LatestBuild.ID)
10901095
require.Equal(t,version1.ID,firstBuild.TemplateVersionID)
10911096

1097+
ctx=testutil.Context(t,testutil.WaitMedium)// Reset the context after workspace operations.
1098+
10921099
// Update the template to require the promoted version.
10931100
_,err=client.UpdateTemplateMeta(ctx,template.ID, codersdk.UpdateTemplateMeta{
10941101
RequireActiveVersion:true,
@@ -1538,9 +1545,6 @@ func TestWorkspaceTagsTerraform(t *testing.T) {
15381545
} {
15391546
tc:=tc
15401547
t.Run(tc.name,func(t*testing.T) {
1541-
// This can take a while, so set a relatively long timeout.
1542-
ctx:=testutil.Context(t,2*testutil.WaitSuperLong)
1543-
15441548
client,owner:=coderdenttest.New(t,&coderdenttest.Options{
15451549
Options:&coderdtest.Options{
15461550
// We intentionally do not run a built-in provisioner daemon here.
@@ -1557,6 +1561,9 @@ func TestWorkspaceTagsTerraform(t *testing.T) {
15571561

15581562
_=coderdenttest.NewExternalProvisionerDaemonTerraform(t,client,owner.OrganizationID,tc.provisionerTags)
15591563

1564+
// This can take a while, so set a relatively long timeout.
1565+
ctx:=testutil.Context(t,2*testutil.WaitSuperLong)
1566+
15601567
// Creating a template as a template admin must succeed
15611568
templateFiles:=map[string]string{"main.tf":fmt.Sprintf(mainTfTemplate,tc.tfWorkspaceTags)}
15621569
tarBytes:=testutil.CreateTar(t,templateFiles)
@@ -1595,13 +1602,11 @@ func downloadProviders(t *testing.T, providersTf string) string {
15951602
t.Helper()
15961603
// We firstly write a Terraform CLI config file to a temporary directory:
15971604
var (
1598-
ctx,cancel=context.WithTimeout(context.Background(),testutil.WaitLong)
15991605
tempDir=t.TempDir()
16001606
cacheDir=filepath.Join(tempDir,".cache")
16011607
providersTfPath=filepath.Join(tempDir,"providers.tf")
16021608
cliConfigPath=filepath.Join(tempDir,"local.tfrc")
16031609
)
1604-
defercancel()
16051610

16061611
// Write files to disk
16071612
require.NoError(t,os.MkdirAll(cacheDir,os.ModePerm|os.ModeDir))
@@ -1619,6 +1624,8 @@ func downloadProviders(t *testing.T, providersTf string) string {
16191624
err:=os.WriteFile(cliConfigPath, []byte(fmt.Sprintf(cliConfigTemplate,cacheDir)),os.ModePerm)// nolint:gosec
16201625
require.NoError(t,err,"failed to write %s",cliConfigPath)
16211626

1627+
ctx:=testutil.Context(t,testutil.WaitLong)
1628+
16221629
// Run terraform providers mirror to mirror required providers to cacheDir
16231630
cmd:=exec.CommandContext(ctx,"terraform","providers","mirror",cacheDir)
16241631
cmd.Env=os.Environ()// without this terraform may complain about path
@@ -1702,7 +1709,6 @@ func TestWorkspacesFiltering(t *testing.T) {
17021709
t.Run("Dormant",func(t*testing.T) {
17031710
t.Parallel()
17041711

1705-
ctx:=testutil.Context(t,testutil.WaitMedium)
17061712
logger:=slogtest.Make(t,&slogtest.Options{IgnoreErrors:true}).Leveled(slog.LevelDebug)
17071713
client,db,owner:=coderdenttest.NewWithDatabase(t,&coderdenttest.Options{
17081714
Options:&coderdtest.Options{
@@ -1736,6 +1742,8 @@ func TestWorkspacesFiltering(t *testing.T) {
17361742
TemplateID:resp.Template.ID,
17371743
}).Do().Workspace
17381744

1745+
ctx:=testutil.Context(t,testutil.WaitMedium)
1746+
17391747
err:=templateAdminClient.UpdateWorkspaceDormancy(ctx,dormantWS1.ID, codersdk.UpdateWorkspaceDormancy{Dormant:true})
17401748
require.NoError(t,err)
17411749

@@ -2046,16 +2054,16 @@ func TestWorkspaceByOwnerAndName(t *testing.T) {
20462054
t.Run("No Matching Provisioner",func(t*testing.T) {
20472055
t.Parallel()
20482056

2049-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
2050-
defercancel()
2051-
20522057
client,db,userResponse:=coderdenttest.NewWithDatabase(t,&coderdenttest.Options{
20532058
LicenseOptions:&coderdenttest.LicenseOptions{
20542059
Features: license.Features{
20552060
codersdk.FeatureExternalProvisionerDaemons:1,
20562061
},
20572062
},
20582063
})
2064+
2065+
ctx:=testutil.Context(t,testutil.WaitLong)
2066+
20592067
userSubject,_,err:=httpmw.UserRBACSubject(ctx,db,userResponse.UserID,rbac.ExpandableScope(rbac.ScopeAll))
20602068
require.NoError(t,err)
20612069
user,err:=client.User(ctx,userSubject.ID)
@@ -2070,6 +2078,8 @@ func TestWorkspaceByOwnerAndName(t *testing.T) {
20702078
coderdtest.AwaitTemplateVersionJobCompleted(t,client,version.ID)
20712079
template:=coderdtest.CreateTemplate(t,client,userResponse.OrganizationID,version.ID)
20722080

2081+
ctx=testutil.Context(t,testutil.WaitLong)// Reset the context to avoid timeouts.
2082+
20732083
// nolint:gocritic // unit testing
20742084
daemons,err:=db.GetProvisionerDaemons(dbauthz.AsSystemRestricted(ctx))
20752085
require.NoError(t,err)
@@ -2121,16 +2131,16 @@ func TestWorkspaceByOwnerAndName(t *testing.T) {
21212131
t.Run("Unavailable Provisioner",func(t*testing.T) {
21222132
t.Parallel()
21232133

2124-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
2125-
defercancel()
2126-
21272134
client,db,userResponse:=coderdenttest.NewWithDatabase(t,&coderdenttest.Options{
21282135
LicenseOptions:&coderdenttest.LicenseOptions{
21292136
Features: license.Features{
21302137
codersdk.FeatureExternalProvisionerDaemons:1,
21312138
},
21322139
},
21332140
})
2141+
2142+
ctx:=testutil.Context(t,testutil.WaitLong)
2143+
21342144
userSubject,_,err:=httpmw.UserRBACSubject(ctx,db,userResponse.UserID,rbac.ExpandableScope(rbac.ScopeAll))
21352145
require.NoError(t,err)
21362146
user,err:=client.User(ctx,userSubject.ID)
@@ -2145,6 +2155,8 @@ func TestWorkspaceByOwnerAndName(t *testing.T) {
21452155
coderdtest.AwaitTemplateVersionJobCompleted(t,client,version.ID)
21462156
template:=coderdtest.CreateTemplate(t,client,userResponse.OrganizationID,version.ID)
21472157

2158+
ctx=testutil.Context(t,testutil.WaitLong)// Reset the context to avoid timeouts.
2159+
21482160
// nolint:gocritic // unit testing
21492161
daemons,err:=db.GetProvisionerDaemons(dbauthz.AsSystemRestricted(ctx))
21502162
require.NoError(t,err)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp