@@ -74,6 +74,53 @@ func TestWorkspaceAgent(t *testing.T) {
74
74
_ , err = client .WorkspaceAgent (ctx , workspace .LatestBuild .Resources [0 ].Agents [0 ].ID )
75
75
require .NoError (t , err )
76
76
})
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
+ })
77
124
}
78
125
79
126
func TestWorkspaceAgentListen (t * testing.T ) {
0 commit comments