@@ -227,39 +227,49 @@ func WorkspaceAgent(t testing.TB, db database.Store, orig database.WorkspaceAgen
227
227
require .NoError (t ,err ,"update workspace agent first connected at" )
228
228
}
229
229
230
- // Add a test antagonist. For every agent we add a deleted sub agent
231
- // to discover cases where deletion should be handled.
232
- subAgt ,err := db .InsertWorkspaceAgent (genCtx , database.InsertWorkspaceAgentParams {
233
- ID :uuid .New (),
234
- ParentID : uuid.NullUUID {UUID :agt .ID ,Valid :true },
235
- CreatedAt :dbtime .Now (),
236
- UpdatedAt :dbtime .Now (),
237
- Name :testutil .GetRandomName (t ),
238
- ResourceID :agt .ResourceID ,
239
- AuthToken :uuid .New (),
240
- AuthInstanceID : sql.NullString {},
241
- Architecture :agt .Architecture ,
242
- EnvironmentVariables : pqtype.NullRawMessage {},
243
- OperatingSystem :agt .OperatingSystem ,
244
- Directory :agt .Directory ,
245
- InstanceMetadata : pqtype.NullRawMessage {},
246
- ResourceMetadata : pqtype.NullRawMessage {},
247
- ConnectionTimeoutSeconds :agt .ConnectionTimeoutSeconds ,
248
- TroubleshootingURL :"I AM A TEST ANTAGONIST AND I AM HERE TO MESS UP YOUR TESTS. IF YOU SEE ME, SOMETHING IS WRONG AND SUB AGENT DELETION MAY NOT BE HANDLED CORRECTLY IN A QUERY." ,
249
- MOTDFile :"" ,
250
- DisplayApps :nil ,
251
- DisplayOrder :agt .DisplayOrder ,
252
- APIKeyScope :agt .APIKeyScope ,
253
- })
254
- require .NoError (t ,err ,"insert workspace agent subagent antagonist" )
255
- err = db .DeleteWorkspaceSubAgentByID (genCtx ,subAgt .ID )
256
- require .NoError (t ,err ,"delete workspace agent subagent antagonist" )
230
+ if orig .ParentID .UUID == uuid .Nil {
231
+ // Add a test antagonist. For every agent we add a deleted sub agent
232
+ // to discover cases where deletion should be handled.
233
+ // See also `(dbfake.WorkspaceBuildBuilder).Do()`.
234
+ subAgt ,err := db .InsertWorkspaceAgent (genCtx , database.InsertWorkspaceAgentParams {
235
+ ID :uuid .New (),
236
+ ParentID : uuid.NullUUID {UUID :agt .ID ,Valid :true },
237
+ CreatedAt :dbtime .Now (),
238
+ UpdatedAt :dbtime .Now (),
239
+ Name :testutil .GetRandomName (t ),
240
+ ResourceID :agt .ResourceID ,
241
+ AuthToken :uuid .New (),
242
+ AuthInstanceID : sql.NullString {},
243
+ Architecture :agt .Architecture ,
244
+ EnvironmentVariables : pqtype.NullRawMessage {},
245
+ OperatingSystem :agt .OperatingSystem ,
246
+ Directory :agt .Directory ,
247
+ InstanceMetadata : pqtype.NullRawMessage {},
248
+ ResourceMetadata : pqtype.NullRawMessage {},
249
+ ConnectionTimeoutSeconds :agt .ConnectionTimeoutSeconds ,
250
+ TroubleshootingURL :"I AM A TEST ANTAGONIST AND I AM HERE TO MESS UP YOUR TESTS. IF YOU SEE ME, SOMETHING IS WRONG AND SUB AGENT DELETION MAY NOT BE HANDLED CORRECTLY IN A QUERY." ,
251
+ MOTDFile :"" ,
252
+ DisplayApps :nil ,
253
+ DisplayOrder :agt .DisplayOrder ,
254
+ APIKeyScope :agt .APIKeyScope ,
255
+ })
256
+ require .NoError (t ,err ,"insert workspace agent subagent antagonist" )
257
+ err = db .DeleteWorkspaceSubAgentByID (genCtx ,subAgt .ID )
258
+ require .NoError (t ,err ,"delete workspace agent subagent antagonist" )
257
259
258
- t .Logf ("inserted workspace agent %s (%v) with deleted subagent antagonist %s (%v)" ,agt .Name ,agt .ID ,subAgt .Name ,subAgt .ID )
260
+ t .Logf ("inserted deleted subagent antagonist %s (%v) for workspace agent %s (%v)" ,subAgt .Name ,subAgt .ID ,agt .Name ,agt .ID )
261
+ }
259
262
260
263
return agt
261
264
}
262
265
266
+ func WorkspaceSubAgent (t testing.TB ,db database.Store ,parentAgent database.WorkspaceAgent ,orig database.WorkspaceAgent ) database.WorkspaceAgent {
267
+ orig .ParentID = uuid.NullUUID {UUID :parentAgent .ID ,Valid :true }
268
+ orig .ResourceID = parentAgent .ResourceID
269
+ subAgt := WorkspaceAgent (t ,db ,orig )
270
+ return subAgt
271
+ }
272
+
263
273
func WorkspaceAgentScript (t testing.TB ,db database.Store ,orig database.WorkspaceAgentScript ) database.WorkspaceAgentScript {
264
274
scripts ,err := db .InsertWorkspaceAgentScripts (genCtx , database.InsertWorkspaceAgentScriptsParams {
265
275
WorkspaceAgentID :takeFirst (orig .WorkspaceAgentID ,uuid .New ()),