@@ -370,6 +370,9 @@ func TestWorkspaceExternalAgentCredentials(t *testing.T) {
370370Bool :true ,
371371Valid :true ,
372372},
373+ }).Resource (& proto.Resource {
374+ Name :"test-agent" ,
375+ Type :"coder_external_agent" ,
373376}).WithAgent (func (a []* proto.Agent ) []* proto.Agent {
374377a [0 ].Name = "test-agent"
375378a [0 ].OperatingSystem = "linux"
@@ -393,6 +396,9 @@ func TestWorkspaceExternalAgentCredentials(t *testing.T) {
393396r := dbfake .WorkspaceBuild (t ,db , database.WorkspaceTable {
394397OrganizationID :user .OrganizationID ,
395398OwnerID :user .UserID ,
399+ }).Resource (& proto.Resource {
400+ Name :"test-agent" ,
401+ Type :"coder_external_agent" ,
396402}).Seed (database.WorkspaceBuild {
397403HasExternalAgent : sql.NullBool {
398404Bool :true ,
@@ -426,6 +432,9 @@ func TestWorkspaceExternalAgentCredentials(t *testing.T) {
426432Bool :true ,
427433Valid :true ,
428434},
435+ }).Resource (& proto.Resource {
436+ Name :"test-agent" ,
437+ Type :"coder_external_agent" ,
429438}).WithAgent (func (a []* proto.Agent ) []* proto.Agent {
430439a [0 ].Name = "test-agent"
431440a [0 ].Auth = & proto.Agent_InstanceId {
@@ -456,4 +465,34 @@ func TestWorkspaceExternalAgentCredentials(t *testing.T) {
456465require .ErrorAs (t ,err ,& apiErr )
457466require .Equal (t ,"Workspace does not have an external agent." ,apiErr .Message )
458467})
468+
469+ t .Run ("No external agent associated with agent - should return 404" ,func (t * testing.T ) {
470+ t .Parallel ()
471+ ctx := testutil .Context (t ,testutil .WaitShort )
472+
473+ r := dbfake .WorkspaceBuild (t ,db , database.WorkspaceTable {
474+ OrganizationID :user .OrganizationID ,
475+ OwnerID :user .UserID ,
476+ }).Seed (database.WorkspaceBuild {
477+ HasExternalAgent : sql.NullBool {
478+ Bool :true ,
479+ Valid :true ,
480+ },
481+ }).Resource (& proto.Resource {
482+ Name :"test-external-agent" ,
483+ Type :"coder_external_agent" ,
484+ }).WithAgent (func (a []* proto.Agent ) []* proto.Agent {
485+ a [0 ].Name = "test-agent-no-external-agent"
486+ a [0 ].Auth = & proto.Agent_Token {
487+ Token :uuid .NewString (),
488+ }
489+ return a
490+ }).Do ()
491+
492+ _ ,err := client .WorkspaceExternalAgentCredentials (ctx ,r .Workspace .ID ,"test-agent-no-external-agent" )
493+ require .Error (t ,err )
494+ var apiErr * codersdk.Error
495+ require .ErrorAs (t ,err ,& apiErr )
496+ require .Equal (t ,"Agent 'test-agent-no-external-agent' does not have an external agent associated with it." ,apiErr .Message )
497+ })
459498}