Skip to content

Commit 866ba8e

Browse files
authored
fix: call agent directly in cli tests (#9789)
* fix: call agent directly in cli tests Signed-off-by: Spike Curtis <spike@coder.com> * log verbose in TestDERPHeaders Signed-off-by: Spike Curtis <spike@coder.com> --------- Signed-off-by: Spike Curtis <spike@coder.com>
1 parent fa85853 commit 866ba8e

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

cli/portforward_test.go

+20-16
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,20 @@ import (
77
"net"
88
"sync"
99
"testing"
10+
"time"
1011

1112
"github.com/google/uuid"
1213
"github.com/pion/udp"
1314
"github.com/stretchr/testify/assert"
1415
"github.com/stretchr/testify/require"
1516

17+
"cdr.dev/slog"
18+
"cdr.dev/slog/sloggers/slogtest"
19+
"github.com/coder/coder/v2/agent"
1620
"github.com/coder/coder/v2/cli/clitest"
1721
"github.com/coder/coder/v2/coderd/coderdtest"
1822
"github.com/coder/coder/v2/codersdk"
23+
"github.com/coder/coder/v2/codersdk/agentsdk"
1924
"github.com/coder/coder/v2/provisioner/echo"
2025
"github.com/coder/coder/v2/pty/ptytest"
2126
"github.com/coder/coder/v2/testutil"
@@ -312,24 +317,23 @@ func runAgent(t *testing.T, client *codersdk.Client, userID uuid.UUID) codersdk.
312317
workspace := coderdtest.CreateWorkspace(t, client, orgID, template.ID)
313318
coderdtest.AwaitWorkspaceBuildJob(t, client, workspace.LatestBuild.ID)
314319

315-
// Start workspace agent in a goroutine
316-
inv, root := clitest.New(t, "agent", "--agent-token", agentToken, "--agent-url", client.URL.String())
317-
clitest.SetupConfig(t, client, root)
318-
pty := ptytest.New(t)
319-
inv.Stdin = pty.Input()
320-
inv.Stdout = pty.Output()
321-
inv.Stderr = pty.Output()
322-
errC := make(chan error)
323-
agentCtx, agentCancel := context.WithCancel(ctx)
320+
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug).Named("agent")
321+
agentClient := agentsdk.New(client.URL)
322+
agentClient.SDK.SetLogger(logger)
323+
agentClient.SDK.SetSessionToken(agentToken)
324+
agnt := agent.New(agent.Options{
325+
Client: agentClient,
326+
Logger: logger,
327+
LogDir: t.TempDir(),
328+
ExchangeToken: func(ctx context.Context) (string, error) {
329+
return agentToken, nil
330+
},
331+
SSHMaxTimeout: time.Second * 60,
332+
})
324333
t.Cleanup(func() {
325-
agentCancel()
326-
err := <-errC
327-
require.NoError(t, err)
334+
err := agnt.Close()
335+
assert.NoError(t, err)
328336
})
329-
go func() {
330-
errC <- inv.WithContext(agentCtx).Run()
331-
}()
332-
333337
coderdtest.AwaitWorkspaceAgents(t, client, workspace.ID)
334338

335339
return workspace

cli/root_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ func TestDERPHeaders(t *testing.T) {
170170

171171
// Connect with the headers set as args.
172172
args := []string{
173+
"-v",
173174
"--no-feature-warning",
174175
"--no-version-warning",
175176
"ping", workspace.Name,

0 commit comments

Comments
 (0)