@@ -341,27 +341,27 @@ func TestWorkspaceAgentLogs(t *testing.T) {
341
341
342
342
func TestWorkspaceAgentAppStatus (t * testing.T ) {
343
343
t .Parallel ()
344
- t .Run ("Success" , func (t * testing.T ) {
345
- t .Parallel ()
346
- ctx := testutil .Context (t , testutil .WaitMedium )
347
- client , db := coderdtest .NewWithDatabase (t , nil )
348
- user := coderdtest .CreateFirstUser (t , client )
349
- client , user2 := coderdtest .CreateAnotherUser (t , client , user .OrganizationID )
344
+ ctx := testutil .Context (t , testutil .WaitMedium )
345
+ client , db := coderdtest .NewWithDatabase (t , nil )
346
+ user := coderdtest .CreateFirstUser (t , client )
347
+ client , user2 := coderdtest .CreateAnotherUser (t , client , user .OrganizationID )
350
348
351
- r := dbfake .WorkspaceBuild (t , db , database.WorkspaceTable {
352
- OrganizationID : user .OrganizationID ,
353
- OwnerID : user2 .ID ,
354
- }).WithAgent (func (a []* proto.Agent ) []* proto.Agent {
355
- a [0 ].Apps = []* proto.App {
356
- {
357
- Slug : "vscode" ,
358
- },
359
- }
360
- return a
361
- }).Do ()
349
+ r := dbfake .WorkspaceBuild (t , db , database.WorkspaceTable {
350
+ OrganizationID : user .OrganizationID ,
351
+ OwnerID : user2 .ID ,
352
+ }).WithAgent (func (a []* proto.Agent ) []* proto.Agent {
353
+ a [0 ].Apps = []* proto.App {
354
+ {
355
+ Slug : "vscode" ,
356
+ },
357
+ }
358
+ return a
359
+ }).Do ()
362
360
363
- agentClient := agentsdk .New (client .URL )
364
- agentClient .SetSessionToken (r .AgentToken )
361
+ agentClient := agentsdk .New (client .URL )
362
+ agentClient .SetSessionToken (r .AgentToken )
363
+ t .Run ("Success" , func (t * testing.T ) {
364
+ t .Parallel ()
365
365
err := agentClient .PatchAppStatus (ctx , agentsdk.PatchAppStatus {
366
366
AppSlug : "vscode" ,
367
367
Message : "testing" ,
@@ -382,6 +382,48 @@ func TestWorkspaceAgentAppStatus(t *testing.T) {
382
382
require .Empty (t , agent .Apps [0 ].Statuses [0 ].Icon )
383
383
require .False (t , agent .Apps [0 ].Statuses [0 ].NeedsUserAttention )
384
384
})
385
+
386
+ t .Run ("FailUnknownApp" , func (t * testing.T ) {
387
+ t .Parallel ()
388
+ err := agentClient .PatchAppStatus (ctx , agentsdk.PatchAppStatus {
389
+ AppSlug : "unknown" ,
390
+ Message : "testing" ,
391
+ URI : "https://example.com" ,
392
+ State : codersdk .WorkspaceAppStatusStateComplete ,
393
+ })
394
+ require .ErrorContains (t , err , "No app found with slug" )
395
+ var sdkErr * codersdk.Error
396
+ require .ErrorAs (t , err , & sdkErr )
397
+ require .Equal (t , http .StatusBadRequest , sdkErr .StatusCode ())
398
+ })
399
+
400
+ t .Run ("FailUnknownState" , func (t * testing.T ) {
401
+ t .Parallel ()
402
+ err := agentClient .PatchAppStatus (ctx , agentsdk.PatchAppStatus {
403
+ AppSlug : "vscode" ,
404
+ Message : "testing" ,
405
+ URI : "https://example.com" ,
406
+ State : "unknown" ,
407
+ })
408
+ require .ErrorContains (t , err , "Invalid state" )
409
+ var sdkErr * codersdk.Error
410
+ require .ErrorAs (t , err , & sdkErr )
411
+ require .Equal (t , http .StatusBadRequest , sdkErr .StatusCode ())
412
+ })
413
+
414
+ t .Run ("FailTooLong" , func (t * testing.T ) {
415
+ t .Parallel ()
416
+ err := agentClient .PatchAppStatus (ctx , agentsdk.PatchAppStatus {
417
+ AppSlug : "vscode" ,
418
+ Message : strings .Repeat ("a" , 161 ),
419
+ URI : "https://example.com" ,
420
+ State : codersdk .WorkspaceAppStatusStateComplete ,
421
+ })
422
+ require .ErrorContains (t , err , "Message is too long" )
423
+ var sdkErr * codersdk.Error
424
+ require .ErrorAs (t , err , & sdkErr )
425
+ require .Equal (t , http .StatusBadRequest , sdkErr .StatusCode ())
426
+ })
385
427
}
386
428
387
429
func TestWorkspaceAgentConnectRPC (t * testing.T ) {
0 commit comments