Skip to content

Commit ebdfdc7

Browse files
authored
test: Make cli speedtest more reliable (coder#6187)
We now wait for the agent to be connected/ready before start.
1 parent 1c4e1d8 commit ebdfdc7

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

cli/speedtest_test.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ import (
55
"testing"
66

77
"github.com/stretchr/testify/assert"
8+
"github.com/stretchr/testify/require"
89

910
"cdr.dev/slog/sloggers/slogtest"
1011
"github.com/coder/coder/agent"
1112
"github.com/coder/coder/cli/clitest"
1213
"github.com/coder/coder/coderd/coderdtest"
14+
"github.com/coder/coder/codersdk"
1315
"github.com/coder/coder/codersdk/agentsdk"
1416
"github.com/coder/coder/pty/ptytest"
1517
"github.com/coder/coder/testutil"
@@ -30,13 +32,27 @@ func TestSpeedtest(t *testing.T) {
3032
defer agentCloser.Close()
3133
coderdtest.AwaitWorkspaceAgents(t, client, workspace.ID)
3234

35+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
36+
defer cancel()
37+
38+
require.Eventually(t, func() bool {
39+
ws, err := client.Workspace(ctx, workspace.ID)
40+
if !assert.NoError(t, err) {
41+
return false
42+
}
43+
a := ws.LatestBuild.Resources[0].Agents[0]
44+
return a.Status == codersdk.WorkspaceAgentConnected &&
45+
a.LifecycleState == codersdk.WorkspaceAgentLifecycleReady
46+
}, testutil.WaitLong, testutil.IntervalFast, "agent is not ready")
47+
3348
cmd, root := clitest.New(t, "speedtest", workspace.Name)
3449
clitest.SetupConfig(t, client, root)
3550
pty := ptytest.New(t)
3651
cmd.SetOut(pty.Output())
3752

38-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
53+
ctx, cancel = context.WithTimeout(context.Background(), testutil.WaitLong)
3954
defer cancel()
55+
4056
cmdDone := tGo(t, func() {
4157
err := cmd.ExecuteContext(ctx)
4258
assert.NoError(t, err)

0 commit comments

Comments
 (0)