@@ -365,21 +365,9 @@ func Test_getWorkspaceAgent(t *testing.T) {
365365}
366366
367367createAgent := func (name string ) codersdk.WorkspaceAgent {
368- return codersdk.WorkspaceAgent {
369- ID :uuid .New (),
370- Name :name ,
371- ParentID : uuid.NullUUID {},
372- }
373- }
374-
375- createSubAgent := func (name string ,parentID uuid.UUID ) codersdk.WorkspaceAgent {
376368return codersdk.WorkspaceAgent {
377369ID :uuid .New (),
378370Name :name ,
379- ParentID : uuid.NullUUID {
380- UUID :parentID ,
381- Valid :true ,
382- },
383371}
384372}
385373
@@ -394,20 +382,7 @@ func Test_getWorkspaceAgent(t *testing.T) {
394382assert .Equal (t ,"main" ,result .Name )
395383})
396384
397- t .Run ("SingleSubAgent_NoNameSpecified" ,func (t * testing.T ) {
398- t .Parallel ()
399- parentAgent := createAgent ("main" )
400- subAgent := createSubAgent ("devcontainer" ,parentAgent .ID )
401- workspace := createWorkspaceWithAgents ([]codersdk.WorkspaceAgent {parentAgent ,subAgent })
402-
403- // Should prefer the sub-agent when no name is specified.
404- result ,err := getWorkspaceAgent (workspace ,"" )
405- require .NoError (t ,err )
406- assert .Equal (t ,subAgent .ID ,result .ID )
407- assert .Equal (t ,"devcontainer" ,result .Name )
408- })
409-
410- t .Run ("MultipleAgents_NoSubAgents_NoNameSpecified" ,func (t * testing.T ) {
385+ t .Run ("MultipleAgents_NoNameSpecified" ,func (t * testing.T ) {
411386t .Parallel ()
412387agent1 := createAgent ("main1" )
413388agent2 := createAgent ("main2" )
@@ -419,20 +394,7 @@ func Test_getWorkspaceAgent(t *testing.T) {
419394assert .Contains (t ,err .Error (),"available agents: [main1 main2]" )
420395})
421396
422- t .Run ("MultipleSubAgents_NoNameSpecified" ,func (t * testing.T ) {
423- t .Parallel ()
424- parentAgent := createAgent ("main" )
425- subAgent1 := createSubAgent ("devcontainer1" ,parentAgent .ID )
426- subAgent2 := createSubAgent ("devcontainer2" ,parentAgent .ID )
427- workspace := createWorkspaceWithAgents ([]codersdk.WorkspaceAgent {parentAgent ,subAgent1 ,subAgent2 })
428-
429- _ ,err := getWorkspaceAgent (workspace ,"" )
430- require .Error (t ,err )
431- assert .Contains (t ,err .Error (),"multiple sub-agents found" )
432- assert .Contains (t ,err .Error (),"available agents: [devcontainer1 devcontainer2 main]" )
433- })
434-
435- t .Run ("AgentNameSpecified_Found_RegularAgent" ,func (t * testing.T ) {
397+ t .Run ("AgentNameSpecified_Found" ,func (t * testing.T ) {
436398t .Parallel ()
437399agent1 := createAgent ("main1" )
438400agent2 := createAgent ("main2" )
@@ -444,18 +406,6 @@ func Test_getWorkspaceAgent(t *testing.T) {
444406assert .Equal (t ,"main1" ,result .Name )
445407})
446408
447- t .Run ("AgentNameSpecified_Found_SubAgent" ,func (t * testing.T ) {
448- t .Parallel ()
449- agent := createAgent ("main" )
450- subAgent := createSubAgent ("devcontainer" ,agent .ID )
451- workspace := createWorkspaceWithAgents ([]codersdk.WorkspaceAgent {agent ,subAgent })
452-
453- result ,err := getWorkspaceAgent (workspace ,"devcontainer" )
454- require .NoError (t ,err )
455- assert .Equal (t ,subAgent .ID ,result .ID )
456- assert .Equal (t ,"devcontainer" ,result .Name )
457- })
458-
459409t .Run ("AgentNameSpecified_NotFound" ,func (t * testing.T ) {
460410t .Parallel ()
461411agent1 := createAgent ("main1" )
@@ -477,65 +427,17 @@ func Test_getWorkspaceAgent(t *testing.T) {
477427assert .Contains (t ,err .Error (),`workspace "test-workspace" has no agents` )
478428})
479429
480- t .Run ("MixedAgents_SubAgentPreferred" ,func (t * testing.T ) {
481- t .Parallel ()
482- agent := createAgent ("main" )
483- subAgent := createSubAgent ("devcontainer" ,agent .ID )
484- workspace := createWorkspaceWithAgents ([]codersdk.WorkspaceAgent {agent ,subAgent })
485-
486- // When no name is specified and there's one sub-agent,
487- // it should be preferred.
488- result ,err := getWorkspaceAgent (workspace ,"" )
489- require .NoError (t ,err )
490- assert .Equal (t ,subAgent .ID ,result .ID )
491- assert .Equal (t ,"devcontainer" ,result .Name )
492- })
493-
494- t .Run ("MixedAgents_SpecificNameFound" ,func (t * testing.T ) {
495- t .Parallel ()
496- agent := createAgent ("main" )
497- subAgent := createSubAgent ("devcontainer" ,agent .ID )
498- workspace := createWorkspaceWithAgents ([]codersdk.WorkspaceAgent {agent ,subAgent })
499-
500- // Should be able to find regular agent by name.
501- result ,err := getWorkspaceAgent (workspace ,"main" )
502- require .NoError (t ,err )
503- assert .Equal (t ,agent .ID ,result .ID )
504- assert .Equal (t ,"main" ,result .Name )
505-
506- // Should be able to find sub-agent by name.
507- result ,err = getWorkspaceAgent (workspace ,"devcontainer" )
508- require .NoError (t ,err )
509- assert .Equal (t ,subAgent .ID ,result .ID )
510- assert .Equal (t ,"devcontainer" ,result .Name )
511- })
512-
513430t .Run ("AvailableAgentNames_SortedCorrectly" ,func (t * testing.T ) {
514431t .Parallel ()
515432// Define agents in non-alphabetical order.
516433agent2 := createAgent ("zod" )
517434agent1 := createAgent ("clark" )
518- subAgent := createSubAgent ("krypton" , agent1 . ID )
519- workspace := createWorkspaceWithAgents ([]codersdk.WorkspaceAgent {agent2 ,agent1 ,subAgent })
435+ agent3 := createAgent ("krypton" )
436+ workspace := createWorkspaceWithAgents ([]codersdk.WorkspaceAgent {agent2 ,agent1 ,agent3 })
520437
521438_ ,err := getWorkspaceAgent (workspace ,"nonexistent" )
522439require .Error (t ,err )
523440// Available agents should be sorted alphabetically.
524441assert .Contains (t ,err .Error (),"available agents: [clark krypton zod]" )
525442})
526-
527- t .Run ("MultipleAgentsAndSubAgents_NoNameSpecified" ,func (t * testing.T ) {
528- t .Parallel ()
529- agent1 := createAgent ("main1" )
530- agent2 := createAgent ("main2" )
531- subAgent1 := createSubAgent ("dev1" ,agent1 .ID )
532- subAgent2 := createSubAgent ("dev2" ,agent1 .ID )
533- workspace := createWorkspaceWithAgents ([]codersdk.WorkspaceAgent {agent1 ,agent2 ,subAgent1 ,subAgent2 })
534-
535- // Should error because there are multiple sub-agents.
536- _ ,err := getWorkspaceAgent (workspace ,"" )
537- require .Error (t ,err )
538- assert .Contains (t ,err .Error (),"multiple sub-agents found" )
539- assert .Contains (t ,err .Error (),"available agents: [dev1 dev2 main1 main2]" )
540- })
541443}