@@ -23,6 +23,7 @@ import (
2323"cdr.dev/slog/sloggers/slogtest"
2424"github.com/coder/coder/v2/agent"
2525"github.com/coder/coder/v2/agent/agenttest"
26+ agentproto"github.com/coder/coder/v2/agent/proto"
2627"github.com/coder/coder/v2/coderd"
2728"github.com/coder/coder/v2/coderd/coderdtest"
2829"github.com/coder/coder/v2/coderd/coderdtest/oidctest"
@@ -500,8 +501,7 @@ func TestWorkspaceAgentTailnetDirectDisabled(t *testing.T) {
500501// Verify that the manifest has DisableDirectConnections set to true.
501502agentClient := agentsdk .New (client .URL )
502503agentClient .SetSessionToken (r .AgentToken )
503- manifest ,err := agentClient .Manifest (ctx )
504- require .NoError (t ,err )
504+ manifest := requireGetManifest (ctx ,t ,agentClient )
505505require .True (t ,manifest .DisableDirectConnections )
506506
507507_ = agenttest .New (t ,client .URL ,r .AgentToken )
@@ -825,11 +825,10 @@ func TestWorkspaceAgentAppHealth(t *testing.T) {
825825agentClient := agentsdk .New (client .URL )
826826agentClient .SetSessionToken (r .AgentToken )
827827
828- manifest ,err := agentClient .Manifest (ctx )
829- require .NoError (t ,err )
828+ manifest := requireGetManifest (ctx ,t ,agentClient )
830829require .EqualValues (t ,codersdk .WorkspaceAppHealthDisabled ,manifest .Apps [0 ].Health )
831830require .EqualValues (t ,codersdk .WorkspaceAppHealthInitializing ,manifest .Apps [1 ].Health )
832- err = agentClient .PostAppHealth (ctx , agentsdk.PostAppHealthsRequest {})
831+ err : =agentClient .PostAppHealth (ctx , agentsdk.PostAppHealthsRequest {})
833832require .Error (t ,err )
834833// empty
835834err = agentClient .PostAppHealth (ctx , agentsdk.PostAppHealthsRequest {})
@@ -855,8 +854,7 @@ func TestWorkspaceAgentAppHealth(t *testing.T) {
855854},
856855})
857856require .NoError (t ,err )
858- manifest ,err = agentClient .Manifest (ctx )
859- require .NoError (t ,err )
857+ manifest = requireGetManifest (ctx ,t ,agentClient )
860858require .EqualValues (t ,codersdk .WorkspaceAppHealthHealthy ,manifest .Apps [1 ].Health )
861859// update to unhealthy
862860err = agentClient .PostAppHealth (ctx , agentsdk.PostAppHealthsRequest {
@@ -865,8 +863,7 @@ func TestWorkspaceAgentAppHealth(t *testing.T) {
865863},
866864})
867865require .NoError (t ,err )
868- manifest ,err = agentClient .Manifest (ctx )
869- require .NoError (t ,err )
866+ manifest = requireGetManifest (ctx ,t ,agentClient )
870867require .EqualValues (t ,codersdk .WorkspaceAppHealthUnhealthy ,manifest .Apps [1 ].Health )
871868}
872869
@@ -1110,8 +1107,7 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
11101107
11111108ctx := testutil .Context (t ,testutil .WaitMedium )
11121109
1113- manifest ,err := agentClient .Manifest (ctx )
1114- require .NoError (t ,err )
1110+ manifest := requireGetManifest (ctx ,t ,agentClient )
11151111
11161112// Verify manifest API response.
11171113require .Equal (t ,workspace .ID ,manifest .WorkspaceID )
@@ -1282,8 +1278,7 @@ func TestWorkspaceAgent_Metadata_CatchMemoryLeak(t *testing.T) {
12821278
12831279ctx ,cancel := context .WithCancel (testutil .Context (t ,testutil .WaitSuperLong ))
12841280
1285- manifest ,err := agentClient .Manifest (ctx )
1286- require .NoError (t ,err )
1281+ manifest := requireGetManifest (ctx ,t ,agentClient )
12871282
12881283post := func (ctx context.Context ,key ,value string )error {
12891284return agentClient .PostMetadata (ctx , agentsdk.PostMetadataRequest {
@@ -1630,3 +1625,18 @@ func TestWorkspaceAgentExternalAuthListen(t *testing.T) {
16301625require .Equal (t ,1 ,validateCalls ,"validate calls duplicated on same token" )
16311626})
16321627}
1628+
1629+ func requireGetManifest (ctx context.Context ,t testing.TB ,client agent.Client ) agentsdk.Manifest {
1630+ conn ,err := client .Listen (ctx )
1631+ require .NoError (t ,err )
1632+ defer func () {
1633+ cErr := conn .Close ()
1634+ require .NoError (t ,cErr )
1635+ }()
1636+ aAPI := agentproto .NewDRPCAgentClient (conn )
1637+ mp ,err := aAPI .GetManifest (ctx ,& agentproto.GetManifestRequest {})
1638+ require .NoError (t ,err )
1639+ manifest ,err := agentsdk .ManifestFromProto (mp )
1640+ require .NoError (t ,err )
1641+ return manifest
1642+ }