@@ -368,50 +368,55 @@ func TestWorkspaceAgentPTY(t *testing.T) {
368
368
369
369
func TestWorkspaceAgentListeningPorts (t * testing.T ) {
370
370
t .Parallel ()
371
- client := coderdtest .New (t , & coderdtest.Options {
372
- IncludeProvisionerDaemon : true ,
373
- })
374
- coderdPort , err := strconv .Atoi (client .URL .Port ())
375
- require .NoError (t , err )
376
371
377
- user := coderdtest .CreateFirstUser (t , client )
378
- authToken := uuid .NewString ()
379
- version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
380
- Parse : echo .ParseComplete ,
381
- ProvisionDryRun : echo .ProvisionComplete ,
382
- Provision : []* proto.Provision_Response {{
383
- Type : & proto.Provision_Response_Complete {
384
- Complete : & proto.Provision_Complete {
385
- Resources : []* proto.Resource {{
386
- Name : "example" ,
387
- Type : "aws_instance" ,
388
- Agents : []* proto.Agent {{
389
- Id : uuid .NewString (),
390
- Auth : & proto.Agent_Token {
391
- Token : authToken ,
392
- },
372
+ setup := func (t * testing.T ) (client * codersdk.Client , agentID uuid.UUID , coderdPort uint16 ) {
373
+ client = coderdtest .New (t , & coderdtest.Options {
374
+ IncludeProvisionerDaemon : true ,
375
+ })
376
+ coderdPortInt , err := strconv .Atoi (client .URL .Port ())
377
+ require .NoError (t , err )
378
+
379
+ user := coderdtest .CreateFirstUser (t , client )
380
+ authToken := uuid .NewString ()
381
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
382
+ Parse : echo .ParseComplete ,
383
+ ProvisionDryRun : echo .ProvisionComplete ,
384
+ Provision : []* proto.Provision_Response {{
385
+ Type : & proto.Provision_Response_Complete {
386
+ Complete : & proto.Provision_Complete {
387
+ Resources : []* proto.Resource {{
388
+ Name : "example" ,
389
+ Type : "aws_instance" ,
390
+ Agents : []* proto.Agent {{
391
+ Id : uuid .NewString (),
392
+ Auth : & proto.Agent_Token {
393
+ Token : authToken ,
394
+ },
395
+ }},
393
396
}},
394
- }} ,
397
+ },
395
398
},
396
- },
397
- }},
398
- })
399
- template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
400
- coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
401
- workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
402
- coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
399
+ }},
400
+ })
401
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
402
+ coderdtest .AwaitTemplateVersionJob (t , client , version .ID )
403
+ workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
404
+ coderdtest .AwaitWorkspaceBuildJob (t , client , workspace .LatestBuild .ID )
403
405
404
- agentClient := codersdk .New (client .URL )
405
- agentClient .SessionToken = authToken
406
- agentCloser := agent .New (agent.Options {
407
- FetchMetadata : agentClient .WorkspaceAgentMetadata ,
408
- CoordinatorDialer : agentClient .ListenWorkspaceAgentTailnet ,
409
- Logger : slogtest .Make (t , nil ).Named ("agent" ).Leveled (slog .LevelDebug ),
410
- })
411
- t .Cleanup (func () {
412
- _ = agentCloser .Close ()
413
- })
414
- resources := coderdtest .AwaitWorkspaceAgents (t , client , workspace .LatestBuild .ID )
406
+ agentClient := codersdk .New (client .URL )
407
+ agentClient .SessionToken = authToken
408
+ agentCloser := agent .New (agent.Options {
409
+ FetchMetadata : agentClient .WorkspaceAgentMetadata ,
410
+ CoordinatorDialer : agentClient .ListenWorkspaceAgentTailnet ,
411
+ Logger : slogtest .Make (t , nil ).Named ("agent" ).Leveled (slog .LevelDebug ),
412
+ })
413
+ t .Cleanup (func () {
414
+ _ = agentCloser .Close ()
415
+ })
416
+ resources := coderdtest .AwaitWorkspaceAgents (t , client , workspace .LatestBuild .ID )
417
+
418
+ return client , resources [0 ].Agents [0 ].ID , uint16 (coderdPortInt )
419
+ }
415
420
416
421
t .Run ("LinuxAndWindows" , func (t * testing.T ) {
417
422
t .Parallel ()
@@ -420,6 +425,8 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
420
425
return
421
426
}
422
427
428
+ client , agentID , coderdPort := setup (t )
429
+
423
430
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
424
431
defer cancel ()
425
432
@@ -431,15 +438,15 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
431
438
tcpAddr , _ := l .Addr ().(* net.TCPAddr )
432
439
433
440
// List ports and ensure that the port we expect to see is there.
434
- res , err := client .WorkspaceAgentListeningPorts (ctx , resources [ 0 ]. Agents [ 0 ]. ID )
441
+ res , err := client .WorkspaceAgentListeningPorts (ctx , agentID )
435
442
require .NoError (t , err )
436
443
437
444
var (
438
445
expected = map [uint16 ]bool {
439
446
// expect the listener we made
440
447
uint16 (tcpAddr .Port ): false ,
441
448
// expect the coderdtest server
442
- uint16 ( coderdPort ) : false ,
449
+ coderdPort : false ,
443
450
}
444
451
)
445
452
for _ , port := range res .Ports {
@@ -461,7 +468,7 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
461
468
// Close the listener and check that the port is no longer in the response.
462
469
require .NoError (t , l .Close ())
463
470
time .Sleep (2 * time .Second ) // avoid cache
464
- res , err = client .WorkspaceAgentListeningPorts (ctx , resources [ 0 ]. Agents [ 0 ]. ID )
471
+ res , err = client .WorkspaceAgentListeningPorts (ctx , agentID )
465
472
require .NoError (t , err )
466
473
467
474
for _ , port := range res .Ports {
@@ -478,6 +485,8 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
478
485
return
479
486
}
480
487
488
+ client , agentID , _ := setup (t )
489
+
481
490
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
482
491
defer cancel ()
483
492
@@ -487,7 +496,7 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
487
496
defer l .Close ()
488
497
489
498
// List ports and ensure that the list is empty because we're on darwin.
490
- res , err := client .WorkspaceAgentListeningPorts (ctx , resources [ 0 ]. Agents [ 0 ]. ID )
499
+ res , err := client .WorkspaceAgentListeningPorts (ctx , agentID )
491
500
require .NoError (t , err )
492
501
require .Len (t , res .Ports , 0 )
493
502
})
0 commit comments