Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 788c1f4

Browse files
committed
Add coderd testcase for coder agent timeout
1 parent 673e331 commit 788c1f4

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

coderd/workspaceagents_test.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,53 @@ func TestWorkspaceAgent(t *testing.T) {
7474
_, err = client.WorkspaceAgent(ctx, workspace.LatestBuild.Resources[0].Agents[0].ID)
7575
require.NoError(t, err)
7676
})
77+
t.Run("Timeout", func(t *testing.T) {
78+
t.Parallel()
79+
client := coderdtest.New(t, &coderdtest.Options{
80+
IncludeProvisionerDaemon: true,
81+
})
82+
user := coderdtest.CreateFirstUser(t, client)
83+
authToken := uuid.NewString()
84+
tmpDir := t.TempDir()
85+
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
86+
Parse: echo.ParseComplete,
87+
ProvisionDryRun: echo.ProvisionComplete,
88+
Provision: []*proto.Provision_Response{{
89+
Type: &proto.Provision_Response_Complete{
90+
Complete: &proto.Provision_Complete{
91+
Resources: []*proto.Resource{{
92+
Name: "example",
93+
Type: "aws_instance",
94+
Agents: []*proto.Agent{{
95+
Id: uuid.NewString(),
96+
Directory: tmpDir,
97+
Auth: &proto.Agent_Token{
98+
Token: authToken,
99+
},
100+
ConnectionTimeout: 1,
101+
TroubleshootingUrl: "https://example.com/troubleshoot",
102+
}},
103+
}},
104+
},
105+
},
106+
}},
107+
})
108+
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
109+
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
110+
workspace := coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)
111+
coderdtest.AwaitWorkspaceBuildJob(t, client, workspace.LatestBuild.ID)
112+
113+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitMedium)
114+
defer cancel()
115+
116+
testutil.Eventually(ctx, t, func(ctx context.Context) (done bool) {
117+
workspace, err := client.Workspace(ctx, workspace.ID)
118+
if !assert.NoError(t, err) {
119+
return false
120+
}
121+
return workspace.LatestBuild.Resources[0].Agents[0].Status == codersdk.WorkspaceAgentTimeout
122+
}, testutil.IntervalMedium, "agent status timeout")
123+
})
77124
}
78125

79126
func TestWorkspaceAgentListen(t *testing.T) {

0 commit comments

Comments
 (0)