@@ -165,60 +165,6 @@ func TestWorkspaceBuilds(t *testing.T) {
165
165
require .NoError (t , err )
166
166
})
167
167
168
- t .Run ("OrphanNotOwner" , func (t * testing.T ) {
169
- t .Parallel ()
170
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
171
- first := coderdtest .CreateFirstUser (t , client )
172
-
173
- ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
174
- defer cancel ()
175
-
176
- version := coderdtest .CreateTemplateVersion (t , client , first .OrganizationID , nil )
177
- template := coderdtest .CreateTemplate (t , client , first .OrganizationID , version .ID )
178
- coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
179
-
180
- regularUser := coderdtest .CreateAnotherUser (t , client , first .OrganizationID )
181
-
182
- workspace := coderdtest .CreateWorkspace (t , regularUser , first .OrganizationID , template .ID )
183
- coderdtest .AwaitWorkspaceBuildJob (t , regularUser , workspace .LatestBuild .ID )
184
-
185
- _ , err := regularUser .CreateWorkspaceBuild (ctx , workspace .ID , codersdk.CreateWorkspaceBuildRequest {
186
- TemplateVersionID : workspace .LatestBuild .TemplateVersionID ,
187
- Transition : workspace .LatestBuild .Transition ,
188
- ProvisionerState : []byte (" " ),
189
- })
190
- require .Error (t , err )
191
-
192
- var cerr * codersdk.Error
193
- require .True (t , errors .As (err , & cerr ))
194
-
195
- code := cerr .StatusCode ()
196
- require .Equal (t , http .StatusForbidden , code , "unexpected status %s" , http .StatusText (code ))
197
- })
198
-
199
- t .Run ("Orphan" , func (t * testing.T ) {
200
- t .Parallel ()
201
- client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
202
- first := coderdtest .CreateFirstUser (t , client )
203
-
204
- ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
205
- defer cancel ()
206
-
207
- version := coderdtest .CreateTemplateVersion (t , client , first .OrganizationID , nil )
208
- template := coderdtest .CreateTemplate (t , client , first .OrganizationID , version .ID )
209
- coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
210
-
211
- workspace := coderdtest .CreateWorkspace (t , client , first .OrganizationID , template .ID )
212
- coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
213
-
214
- _ , err := client .CreateWorkspaceBuild (ctx , workspace .ID , codersdk.CreateWorkspaceBuildRequest {
215
- TemplateVersionID : workspace .LatestBuild .TemplateVersionID ,
216
- Transition : workspace .LatestBuild .Transition ,
217
- ProvisionerState : []byte (" " ),
218
- })
219
- require .Nil (t , err )
220
- })
221
-
222
168
t .Run ("PaginateNonExistentRow" , func (t * testing.T ) {
223
169
t .Parallel ()
224
170
client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
@@ -285,6 +231,66 @@ func TestWorkspaceBuilds(t *testing.T) {
285
231
})
286
232
}
287
233
234
+ func TestWorkspaceBuilds_CustomState (t * testing.T ) {
235
+ t .Parallel ()
236
+
237
+ t .Run ("Forbidden" , func (t * testing.T ) {
238
+ t .Parallel ()
239
+ client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
240
+ first := coderdtest .CreateFirstUser (t , client )
241
+
242
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
243
+ defer cancel ()
244
+
245
+ version := coderdtest .CreateTemplateVersion (t , client , first .OrganizationID , nil )
246
+ template := coderdtest .CreateTemplate (t , client , first .OrganizationID , version .ID )
247
+ coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
248
+
249
+ regularUser := coderdtest .CreateAnotherUser (t , client , first .OrganizationID )
250
+
251
+ workspace := coderdtest .CreateWorkspace (t , regularUser , first .OrganizationID , template .ID )
252
+ coderdtest .AwaitWorkspaceBuildJob (t , regularUser , workspace .LatestBuild .ID )
253
+
254
+ _ , err := regularUser .CreateWorkspaceBuild (ctx , workspace .ID , codersdk.CreateWorkspaceBuildRequest {
255
+ TemplateVersionID : workspace .LatestBuild .TemplateVersionID ,
256
+ Transition : workspace .LatestBuild .Transition ,
257
+ ProvisionerState : []byte (" " ),
258
+ })
259
+ require .Error (t , err )
260
+
261
+ var cerr * codersdk.Error
262
+ require .True (t , errors .As (err , & cerr ))
263
+
264
+ code := cerr .StatusCode ()
265
+ require .Equal (t , http .StatusForbidden , code , "unexpected status %s" , http .StatusText (code ))
266
+ })
267
+
268
+ t .Run ("Success" , func (t * testing.T ) {
269
+ t .Parallel ()
270
+ client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
271
+ first := coderdtest .CreateFirstUser (t , client )
272
+
273
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
274
+ defer cancel ()
275
+
276
+ version := coderdtest .CreateTemplateVersion (t , client , first .OrganizationID , nil )
277
+ template := coderdtest .CreateTemplate (t , client , first .OrganizationID , version .ID )
278
+ coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
279
+
280
+ workspace := coderdtest .CreateWorkspace (t , client , first .OrganizationID , template .ID )
281
+ coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
282
+
283
+ build , err := client .CreateWorkspaceBuild (ctx , workspace .ID , codersdk.CreateWorkspaceBuildRequest {
284
+ TemplateVersionID : workspace .LatestBuild .TemplateVersionID ,
285
+ Transition : codersdk .WorkspaceTransitionDelete ,
286
+ ProvisionerState : []byte (" " ),
287
+ })
288
+ require .Nil (t , err )
289
+
290
+ coderdtest .AwaitWorkspaceBuildJob (t , client , build .ID )
291
+ })
292
+ }
293
+
288
294
func TestPatchCancelWorkspaceBuild (t * testing.T ) {
289
295
t .Parallel ()
290
296
client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
0 commit comments