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

Commit27d1bde

Browse files
committed
chore: reduce execution time of TestProvisionerJobs [ai]
1 parente549084 commit27d1bde

File tree

1 file changed

+63
-80
lines changed

1 file changed

+63
-80
lines changed

‎cli/provisionerjobs_test.go‎

Lines changed: 63 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"testing"
99
"time"
1010

11-
"github.com/aws/smithy-go/ptr"
1211
"github.com/google/uuid"
1312
"github.com/stretchr/testify/assert"
1413
"github.com/stretchr/testify/require"
@@ -36,102 +35,86 @@ func TestProvisionerJobs(t *testing.T) {
3635
templateAdminClient,templateAdmin:=coderdtest.CreateAnotherUser(t,client,owner.OrganizationID,rbac.ScopedRoleOrgTemplateAdmin(owner.OrganizationID))
3736
memberClient,member:=coderdtest.CreateAnotherUser(t,client,owner.OrganizationID)
3837

39-
// Create initial resources with a running provisioner.
40-
firstProvisioner:=coderdtest.NewTaggedProvisionerDaemon(t,coderdAPI,"default-provisioner",map[string]string{"owner":"","scope":"organization"})
41-
t.Cleanup(func() {_=firstProvisioner.Close() })
42-
version:=coderdtest.CreateTemplateVersion(t,client,owner.OrganizationID,completeWithAgent())
43-
coderdtest.AwaitTemplateVersionJobCompleted(t,client,version.ID)
44-
template:=coderdtest.CreateTemplate(t,client,owner.OrganizationID,version.ID,func(req*codersdk.CreateTemplateRequest) {
45-
req.AllowUserCancelWorkspaceJobs=ptr.Bool(true)
38+
// Create minimal template setup without provisioner overhead
39+
template:=dbgen.Template(t,db, database.Template{
40+
OrganizationID:owner.OrganizationID,
41+
CreatedBy:owner.UserID,
42+
AllowUserCancelWorkspaceJobs:true,
43+
})
44+
version:=dbgen.TemplateVersion(t,db, database.TemplateVersion{
45+
OrganizationID:owner.OrganizationID,
46+
CreatedBy:owner.UserID,
47+
TemplateID: uuid.NullUUID{UUID:template.ID,Valid:true},
4648
})
47-
48-
// Stop the provisioner so it doesn't grab any more jobs.
49-
firstProvisioner.Close()
5049

5150
t.Run("Cancel",func(t*testing.T) {
5251
t.Parallel()
5352

54-
// Set up test helpers.
55-
typejobInputstruct {
56-
WorkspaceBuildIDstring`json:"workspace_build_id,omitempty"`
57-
TemplateVersionIDstring`json:"template_version_id,omitempty"`
58-
DryRunbool`json:"dry_run,omitempty"`
59-
}
60-
prepareJob:=func(t*testing.T,inputjobInput) database.ProvisionerJob {
53+
// Set up test helpers - simplified to avoid provisioner daemon overhead.
54+
prepareJob:=func(t*testing.T,jobType database.ProvisionerJobType,input json.RawMessage) database.ProvisionerJob {
6155
t.Helper()
62-
63-
inputBytes,err:=json.Marshal(input)
64-
require.NoError(t,err)
65-
66-
vartyp database.ProvisionerJobType
67-
switch {
68-
caseinput.WorkspaceBuildID!="":
69-
typ=database.ProvisionerJobTypeWorkspaceBuild
70-
caseinput.TemplateVersionID!="":
71-
ifinput.DryRun {
72-
typ=database.ProvisionerJobTypeTemplateVersionDryRun
73-
}else {
74-
typ=database.ProvisionerJobTypeTemplateVersionImport
75-
}
76-
default:
77-
t.Fatal("invalid input")
78-
}
79-
80-
var (
81-
tags= database.StringMap{"owner":"","scope":"organization","foo":uuid.New().String()}
82-
_=dbgen.ProvisionerDaemon(t,db, database.ProvisionerDaemon{Tags:tags})
83-
job=dbgen.ProvisionerJob(t,db,coderdAPI.Pubsub, database.ProvisionerJob{
84-
InitiatorID:member.ID,
85-
Input:json.RawMessage(inputBytes),
86-
Type:typ,
87-
Tags:tags,
88-
StartedAt: sql.NullTime{Time:coderdAPI.Clock.Now().Add(-time.Minute),Valid:true},
89-
})
90-
)
91-
returnjob
56+
returndbgen.ProvisionerJob(t,db,coderdAPI.Pubsub, database.ProvisionerJob{
57+
InitiatorID:member.ID,
58+
Input:input,
59+
Type:jobType,
60+
StartedAt: sql.NullTime{Time:coderdAPI.Clock.Now().Add(-time.Minute),Valid:true},
61+
})
9262
}
9363

9464
prepareWorkspaceBuildJob:=func(t*testing.T) database.ProvisionerJob {
9565
t.Helper()
96-
var (
97-
wbID=uuid.New()
98-
job=prepareJob(t,jobInput{WorkspaceBuildID:wbID.String()})
99-
w=dbgen.Workspace(t,db, database.WorkspaceTable{
100-
OrganizationID:owner.OrganizationID,
101-
OwnerID:member.ID,
102-
TemplateID:template.ID,
103-
})
104-
_=dbgen.WorkspaceBuild(t,db, database.WorkspaceBuild{
105-
ID:wbID,
106-
InitiatorID:member.ID,
107-
WorkspaceID:w.ID,
108-
TemplateVersionID:version.ID,
109-
JobID:job.ID,
110-
})
111-
)
66+
wbID:=uuid.New()
67+
input,_:=json.Marshal(map[string]string{"workspace_build_id":wbID.String()})
68+
job:=prepareJob(t,database.ProvisionerJobTypeWorkspaceBuild,input)
69+
70+
w:=dbgen.Workspace(t,db, database.WorkspaceTable{
71+
OrganizationID:owner.OrganizationID,
72+
OwnerID:member.ID,
73+
TemplateID:template.ID,
74+
})
75+
_=dbgen.WorkspaceBuild(t,db, database.WorkspaceBuild{
76+
ID:wbID,
77+
InitiatorID:member.ID,
78+
WorkspaceID:w.ID,
79+
TemplateVersionID:version.ID,
80+
JobID:job.ID,
81+
})
11282
returnjob
11383
}
11484

115-
prepareTemplateVersionImportJobBuilder:=func(t*testing.T,dryRunbool) database.ProvisionerJob {
85+
prepareTemplateVersionImportJob:=func(t*testing.T) database.ProvisionerJob {
11686
t.Helper()
117-
var (
118-
tvID=uuid.New()
119-
job=prepareJob(t,jobInput{TemplateVersionID:tvID.String(),DryRun:dryRun})
120-
_=dbgen.TemplateVersion(t,db, database.TemplateVersion{
121-
OrganizationID:owner.OrganizationID,
122-
CreatedBy:templateAdmin.ID,
123-
ID:tvID,
124-
TemplateID:uuid.NullUUID{UUID:template.ID,Valid:true},
125-
JobID:job.ID,
126-
})
127-
)
87+
tvID:=uuid.New()
88+
input,_:=json.Marshal(map[string]string{"template_version_id":tvID.String()})
89+
job:=prepareJob(t,database.ProvisionerJobTypeTemplateVersionImport,input)
90+
91+
_=dbgen.TemplateVersion(t,db, database.TemplateVersion{
92+
OrganizationID:owner.OrganizationID,
93+
CreatedBy:templateAdmin.ID,
94+
ID:tvID,
95+
TemplateID:uuid.NullUUID{UUID:template.ID,Valid:true},
96+
JobID:job.ID,
97+
})
12898
returnjob
12999
}
130-
prepareTemplateVersionImportJob:=func(t*testing.T) database.ProvisionerJob {
131-
returnprepareTemplateVersionImportJobBuilder(t,false)
132-
}
100+
133101
prepareTemplateVersionImportJobDryRun:=func(t*testing.T) database.ProvisionerJob {
134-
returnprepareTemplateVersionImportJobBuilder(t,true)
102+
t.Helper()
103+
tvID:=uuid.New()
104+
input,_:=json.Marshal(map[string]interface{}{
105+
"template_version_id":tvID.String(),
106+
"dry_run":true,
107+
})
108+
job:=prepareJob(t,database.ProvisionerJobTypeTemplateVersionDryRun,input)
109+
110+
_=dbgen.TemplateVersion(t,db, database.TemplateVersion{
111+
OrganizationID:owner.OrganizationID,
112+
CreatedBy:templateAdmin.ID,
113+
ID:tvID,
114+
TemplateID: uuid.NullUUID{UUID:template.ID,Valid:true},
115+
JobID:job.ID,
116+
})
117+
returnjob
135118
}
136119

137120
// Run the cancellation test suite.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp