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

Skip to content

Commit d9635a8

Browse files
committed
please work tests
1 parent e2973ba commit d9635a8

File tree

1 file changed

+53
-44
lines changed

1 file changed

+53
-44
lines changed

coderd/workspaceagents_test.go

+53-44
Original file line numberDiff line numberDiff line change
@@ -368,50 +368,55 @@ func TestWorkspaceAgentPTY(t *testing.T) {
368368

369369
func TestWorkspaceAgentListeningPorts(t *testing.T) {
370370
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)
376371

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+
}},
393396
}},
394-
}},
397+
},
395398
},
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)
403405

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+
}
415420

416421
t.Run("LinuxAndWindows", func(t *testing.T) {
417422
t.Parallel()
@@ -420,6 +425,8 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
420425
return
421426
}
422427

428+
client, agentID, coderdPort := setup(t)
429+
423430
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
424431
defer cancel()
425432

@@ -431,15 +438,15 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
431438
tcpAddr, _ := l.Addr().(*net.TCPAddr)
432439

433440
// 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)
435442
require.NoError(t, err)
436443

437444
var (
438445
expected = map[uint16]bool{
439446
// expect the listener we made
440447
uint16(tcpAddr.Port): false,
441448
// expect the coderdtest server
442-
uint16(coderdPort): false,
449+
coderdPort: false,
443450
}
444451
)
445452
for _, port := range res.Ports {
@@ -461,7 +468,7 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
461468
// Close the listener and check that the port is no longer in the response.
462469
require.NoError(t, l.Close())
463470
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)
465472
require.NoError(t, err)
466473

467474
for _, port := range res.Ports {
@@ -478,6 +485,8 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
478485
return
479486
}
480487

488+
client, agentID, _ := setup(t)
489+
481490
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
482491
defer cancel()
483492

@@ -487,7 +496,7 @@ func TestWorkspaceAgentListeningPorts(t *testing.T) {
487496
defer l.Close()
488497

489498
// 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)
491500
require.NoError(t, err)
492501
require.Len(t, res.Ports, 0)
493502
})

0 commit comments

Comments
 (0)