@@ -87,70 +87,57 @@ func TestAcquireJob(t *testing.T) {
87
87
t .Parallel ()
88
88
srv := setup (t , false )
89
89
ctx := context .Background ()
90
- user , err := srv .Database .InsertUser (context .Background (), database.InsertUserParams {
91
- ID : uuid .New (),
92
- Username : "testing" ,
93
- LoginType : database .LoginTypePassword ,
94
- })
95
- require .NoError (t , err )
96
- template , err := srv .Database .InsertTemplate (ctx , database.InsertTemplateParams {
97
- ID : uuid .New (),
90
+
91
+ gen := databasefake .NewGenerator (t , srv .Database )
92
+ user := gen .User (ctx , database.User {})
93
+ template := gen .Template (ctx , database.Template {
98
94
Name : "template" ,
99
95
Provisioner : database .ProvisionerTypeEcho ,
100
96
})
101
- require . NoError ( t , err )
102
- version , err := srv . Database . InsertTemplateVersion (ctx , database.InsertTemplateVersionParams {
103
- ID : uuid . New (),
97
+ file := gen . File ( ctx , database. File { CreatedBy : user . ID } )
98
+ versionFile := gen . File (ctx , database.File { CreatedBy : user . ID })
99
+ version := gen . TemplateVersion ( ctx , database. TemplateVersion {
104
100
TemplateID : uuid.NullUUID {
105
101
UUID : template .ID ,
106
102
Valid : true ,
107
103
},
108
104
JobID : uuid .New (),
109
105
})
110
- require .NoError (t , err )
111
- workspace , err := srv .Database .InsertWorkspace (ctx , database.InsertWorkspaceParams {
112
- ID : uuid .New (),
113
- OwnerID : user .ID ,
106
+ // Import version job
107
+ _ = gen .Job (ctx , database.ProvisionerJob {
108
+ ID : version .JobID ,
109
+ InitiatorID : user .ID ,
110
+ FileID : versionFile .ID ,
111
+ Provisioner : database .ProvisionerTypeEcho ,
112
+ StorageMethod : database .ProvisionerStorageMethodFile ,
113
+ Type : database .ProvisionerJobTypeTemplateVersionImport ,
114
+ Input : must (json .Marshal (provisionerdserver.TemplateVersionImportJob {
115
+ TemplateVersionID : version .ID ,
116
+ })),
117
+ })
118
+ workspace := gen .Workspace (ctx , database.Workspace {
114
119
TemplateID : template .ID ,
115
- Name : "workspace" ,
120
+ OwnerID : user . ID ,
116
121
})
117
- require .NoError (t , err )
118
- build , err := srv .Database .InsertWorkspaceBuild (ctx , database.InsertWorkspaceBuildParams {
119
- ID : uuid .New (),
122
+ build := gen .WorkspaceBuild (ctx , database.WorkspaceBuild {
120
123
WorkspaceID : workspace .ID ,
121
124
BuildNumber : 1 ,
122
125
JobID : uuid .New (),
123
126
TemplateVersionID : version .ID ,
124
127
Transition : database .WorkspaceTransitionStart ,
125
128
Reason : database .BuildReasonInitiator ,
126
129
})
127
- require .NoError (t , err )
128
-
129
- data , err := json .Marshal (provisionerdserver.WorkspaceProvisionJob {
130
- WorkspaceBuildID : build .ID ,
131
- })
132
- require .NoError (t , err )
133
-
134
- file , err := srv .Database .InsertFile (ctx , database.InsertFileParams {
135
- ID : uuid .New (),
136
- Hash : "something" ,
137
- Data : []byte {},
138
- })
139
- require .NoError (t , err )
140
-
141
- _ , err = srv .Database .InsertProvisionerJob (context .Background (), database.InsertProvisionerJobParams {
142
- ID : build .JobID ,
143
- CreatedAt : database .Now (),
144
- UpdatedAt : database .Now (),
145
- OrganizationID : uuid .New (),
146
- InitiatorID : user .ID ,
147
- Provisioner : database .ProvisionerTypeEcho ,
148
- StorageMethod : database .ProvisionerStorageMethodFile ,
149
- FileID : file .ID ,
150
- Type : database .ProvisionerJobTypeWorkspaceBuild ,
151
- Input : data ,
130
+ _ = gen .Job (ctx , database.ProvisionerJob {
131
+ ID : build .ID ,
132
+ InitiatorID : user .ID ,
133
+ Provisioner : database .ProvisionerTypeEcho ,
134
+ StorageMethod : database .ProvisionerStorageMethodFile ,
135
+ FileID : file .ID ,
136
+ Type : database .ProvisionerJobTypeWorkspaceBuild ,
137
+ Input : must (json .Marshal (provisionerdserver.WorkspaceProvisionJob {
138
+ WorkspaceBuildID : build .ID ,
139
+ })),
152
140
})
153
- require .NoError (t , err )
154
141
155
142
published := make (chan struct {})
156
143
closeSubscribe , err := srv .Pubsub .Subscribe (codersdk .WorkspaceNotifyChannel (workspace .ID ), func (_ context.Context , _ []byte ) {
@@ -159,8 +146,17 @@ func TestAcquireJob(t *testing.T) {
159
146
require .NoError (t , err )
160
147
defer closeSubscribe ()
161
148
162
- job , err := srv .AcquireJob (ctx , nil )
163
- require .NoError (t , err )
149
+ var job * proto.AcquiredJob
150
+
151
+ for {
152
+ // Grab jobs until we find the workspace build job. There is also
153
+ // an import version job that we need to ignore.
154
+ job , err = srv .AcquireJob (ctx , nil )
155
+ require .NoError (t , err )
156
+ if _ , ok := job .Type .(* proto.AcquiredJob_WorkspaceBuild_ ); ok {
157
+ break
158
+ }
159
+ }
164
160
165
161
<- published
166
162
@@ -191,44 +187,23 @@ func TestAcquireJob(t *testing.T) {
191
187
t .Parallel ()
192
188
srv := setup (t , false )
193
189
ctx := context .Background ()
194
- user , err := srv .Database .InsertUser (ctx , database.InsertUserParams {
195
- ID : uuid .New (),
196
- Username : "testing" ,
197
- LoginType : database .LoginTypePassword ,
198
- })
199
- require .NoError (t , err )
200
- version , err := srv .Database .InsertTemplateVersion (ctx , database.InsertTemplateVersionParams {
201
- ID : uuid .New (),
202
- })
203
- require .NoError (t , err )
204
190
205
- data , err := json .Marshal (provisionerdserver.TemplateVersionDryRunJob {
206
- TemplateVersionID : version .ID ,
207
- WorkspaceName : "testing" ,
208
- ParameterValues : []database.ParameterValue {},
209
- })
210
- require .NoError (t , err )
211
-
212
- file , err := srv .Database .InsertFile (ctx , database.InsertFileParams {
213
- ID : uuid .New (),
214
- Hash : "something" ,
215
- Data : []byte {},
216
- })
217
- require .NoError (t , err )
218
-
219
- _ , err = srv .Database .InsertProvisionerJob (context .Background (), database.InsertProvisionerJobParams {
220
- ID : uuid .New (),
221
- CreatedAt : database .Now (),
222
- UpdatedAt : database .Now (),
223
- OrganizationID : uuid .New (),
224
- InitiatorID : user .ID ,
225
- Provisioner : database .ProvisionerTypeEcho ,
226
- StorageMethod : database .ProvisionerStorageMethodFile ,
227
- FileID : file .ID ,
228
- Type : database .ProvisionerJobTypeTemplateVersionDryRun ,
229
- Input : data ,
191
+ gen := databasefake .NewGenerator (t , srv .Database )
192
+ user := gen .User (ctx , database.User {})
193
+ version := gen .TemplateVersion (ctx , database.TemplateVersion {})
194
+ file := gen .File (ctx , database.File {CreatedBy : user .ID })
195
+ _ = gen .Job (ctx , database.ProvisionerJob {
196
+ InitiatorID : user .ID ,
197
+ Provisioner : database .ProvisionerTypeEcho ,
198
+ StorageMethod : database .ProvisionerStorageMethodFile ,
199
+ FileID : file .ID ,
200
+ Type : database .ProvisionerJobTypeTemplateVersionDryRun ,
201
+ Input : must (json .Marshal (provisionerdserver.TemplateVersionDryRunJob {
202
+ TemplateVersionID : version .ID ,
203
+ WorkspaceName : "testing" ,
204
+ ParameterValues : []database.ParameterValue {},
205
+ })),
230
206
})
231
- require .NoError (t , err )
232
207
233
208
job , err := srv .AcquireJob (ctx , nil )
234
209
require .NoError (t , err )
@@ -252,33 +227,17 @@ func TestAcquireJob(t *testing.T) {
252
227
t .Parallel ()
253
228
srv := setup (t , false )
254
229
ctx := context .Background ()
255
- user , err := srv .Database .InsertUser (ctx , database.InsertUserParams {
256
- ID : uuid .New (),
257
- Username : "testing" ,
258
- LoginType : database .LoginTypePassword ,
259
- })
260
- require .NoError (t , err )
261
-
262
- file , err := srv .Database .InsertFile (ctx , database.InsertFileParams {
263
- ID : uuid .New (),
264
- Hash : "something" ,
265
- Data : []byte {},
266
- })
267
- require .NoError (t , err )
268
230
269
- _ , err = srv .Database .InsertProvisionerJob (context .Background (), database.InsertProvisionerJobParams {
270
- ID : uuid .New (),
271
- CreatedAt : database .Now (),
272
- UpdatedAt : database .Now (),
273
- OrganizationID : uuid .New (),
274
- InitiatorID : user .ID ,
275
- Provisioner : database .ProvisionerTypeEcho ,
276
- StorageMethod : database .ProvisionerStorageMethodFile ,
277
- FileID : file .ID ,
278
- Type : database .ProvisionerJobTypeTemplateVersionImport ,
279
- Input : json.RawMessage {},
231
+ gen := databasefake .NewGenerator (t , srv .Database )
232
+ user := gen .User (ctx , database.User {})
233
+ file := gen .File (ctx , database.File {CreatedBy : user .ID })
234
+ _ = gen .Job (ctx , database.ProvisionerJob {
235
+ FileID : file .ID ,
236
+ InitiatorID : user .ID ,
237
+ Provisioner : database .ProvisionerTypeEcho ,
238
+ StorageMethod : database .ProvisionerStorageMethodFile ,
239
+ Type : database .ProvisionerJobTypeTemplateVersionImport ,
280
240
})
281
- require .NoError (t , err )
282
241
283
242
job , err := srv .AcquireJob (ctx , nil )
284
243
require .NoError (t , err )
@@ -855,3 +814,10 @@ func setup(t *testing.T, ignoreLogErrors bool) *provisionerdserver.Server {
855
814
Auditor : mockAuditor (),
856
815
}
857
816
}
817
+
818
+ func must [T any ](value T , err error ) T {
819
+ if err != nil {
820
+ panic (err )
821
+ }
822
+ return value
823
+ }
0 commit comments