Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5398150

Browse files
authored
chore: move workspace apps tests to new package (#7025)
* chore: move workspace apps tests to new package* chore: move reconnecting pty to apptest package
1 parentb2892c3 commit5398150

File tree

7 files changed

+1609
-1530
lines changed

7 files changed

+1609
-1530
lines changed

‎coderd/activitybump_test.go‎

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ import (
99
"github.com/stretchr/testify/require"
1010

1111
"cdr.dev/slog/sloggers/slogtest"
12+
"github.com/coder/coder/agent"
1213
"github.com/coder/coder/coderd/coderdtest"
1314
"github.com/coder/coder/coderd/database"
1415
"github.com/coder/coder/coderd/schedule"
1516
"github.com/coder/coder/codersdk"
17+
"github.com/coder/coder/codersdk/agentsdk"
18+
"github.com/coder/coder/provisioner/echo"
19+
"github.com/coder/coder/provisionersdk/proto"
1620
"github.com/coder/coder/testutil"
1721
)
1822

@@ -29,7 +33,6 @@ func TestWorkspaceActivityBump(t *testing.T) {
2933
}
3034

3135
client=coderdtest.New(t,&coderdtest.Options{
32-
AppHostname:proxyTestSubdomainRaw,
3336
IncludeProvisionerDaemon:true,
3437
// Agent stats trigger the activity bump, so we want to report
3538
// very frequently in tests.
@@ -47,9 +50,45 @@ func TestWorkspaceActivityBump(t *testing.T) {
4750
user:=coderdtest.CreateFirstUser(t,client)
4851

4952
ttlMillis:=int64(ttl/time.Millisecond)
50-
workspace=createWorkspaceWithApps(t,client,user.OrganizationID,"",1234,func(cwr*codersdk.CreateWorkspaceRequest) {
53+
agentToken:=uuid.NewString()
54+
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
55+
Parse:echo.ParseComplete,
56+
ProvisionPlan:echo.ProvisionComplete,
57+
ProvisionApply: []*proto.Provision_Response{{
58+
Type:&proto.Provision_Response_Complete{
59+
Complete:&proto.Provision_Complete{
60+
Resources: []*proto.Resource{{
61+
Name:"example",
62+
Type:"aws_instance",
63+
Agents: []*proto.Agent{{
64+
Id:uuid.NewString(),
65+
Name:"agent",
66+
Auth:&proto.Agent_Token{
67+
Token:agentToken,
68+
},
69+
}},
70+
}},
71+
},
72+
},
73+
}},
74+
})
75+
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
76+
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
77+
workspace=coderdtest.CreateWorkspace(t,client,user.OrganizationID,template.ID,func(cwr*codersdk.CreateWorkspaceRequest) {
5178
cwr.TTLMillis=&ttlMillis
5279
})
80+
coderdtest.AwaitWorkspaceBuildJob(t,client,workspace.LatestBuild.ID)
81+
82+
agentClient:=agentsdk.New(client.URL)
83+
agentClient.SetSessionToken(agentToken)
84+
agentCloser:=agent.New(agent.Options{
85+
Client:agentClient,
86+
Logger:slogtest.Make(t,nil).Named("agent"),
87+
})
88+
t.Cleanup(func() {
89+
_=agentCloser.Close()
90+
})
91+
coderdtest.AwaitWorkspaceAgents(t,client,workspace.ID)
5392

5493
// Sanity-check that deadline is near.
5594
workspace,err:=client.Workspace(ctx,workspace.ID)

‎coderd/client_test.go‎

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,6 @@ import (
1414
// While running tests in parallel, the web server seems to be overloaded and responds with HTTP 502.
1515
// require.Eventually expects correct HTTP responses.
1616

17-
funcdoWithRetries(t require.TestingT,client*codersdk.Client,req*http.Request) (*http.Response,error) {
18-
varresp*http.Response
19-
varerrerror
20-
require.Eventually(t,func()bool {
21-
// nolint // only requests which are not passed upstream have a body closed
22-
resp,err=client.HTTPClient.Do(req)
23-
ifresp!=nil&&resp.StatusCode==http.StatusBadGateway {
24-
ifresp.Body!=nil {
25-
resp.Body.Close()
26-
}
27-
returnfalse
28-
}
29-
returntrue
30-
},testutil.WaitLong,testutil.IntervalFast)
31-
returnresp,err
32-
}
33-
3417
funcrequestWithRetries(ctx context.Context,t require.TestingT,client*codersdk.Client,method,pathstring,bodyinterface{},opts...codersdk.RequestOption) (*http.Response,error) {
3518
varresp*http.Response
3619
varerrerror

‎coderd/workspaceagents_test.go‎

Lines changed: 0 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package coderd_test
22

33
import (
4-
"bufio"
54
"context"
6-
"encoding/json"
75
"fmt"
86
"net"
97
"net/http"
@@ -446,88 +444,6 @@ func TestWorkspaceAgentTailnet(t *testing.T) {
446444
require.Equal(t,"test",strings.TrimSpace(string(output)))
447445
}
448446

449-
funcTestWorkspaceAgentPTY(t*testing.T) {
450-
t.Parallel()
451-
ifruntime.GOOS=="windows" {
452-
// This might be our implementation, or ConPTY itself.
453-
// It's difficult to find extensive tests for it, so
454-
// it seems like it could be either.
455-
t.Skip("ConPTY appears to be inconsistent on Windows.")
456-
}
457-
client:=coderdtest.New(t,&coderdtest.Options{
458-
IncludeProvisionerDaemon:true,
459-
})
460-
user:=coderdtest.CreateFirstUser(t,client)
461-
authToken:=uuid.NewString()
462-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
463-
Parse:echo.ParseComplete,
464-
ProvisionPlan:echo.ProvisionComplete,
465-
ProvisionApply:echo.ProvisionApplyWithAgent(authToken),
466-
})
467-
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
468-
coderdtest.AwaitTemplateVersionJob(t,client,version.ID)
469-
workspace:=coderdtest.CreateWorkspace(t,client,user.OrganizationID,template.ID)
470-
coderdtest.AwaitWorkspaceBuildJob(t,client,workspace.LatestBuild.ID)
471-
472-
agentClient:=agentsdk.New(client.URL)
473-
agentClient.SetSessionToken(authToken)
474-
agentCloser:=agent.New(agent.Options{
475-
Client:agentClient,
476-
Logger:slogtest.Make(t,nil).Named("agent").Leveled(slog.LevelDebug),
477-
})
478-
deferfunc() {
479-
_=agentCloser.Close()
480-
}()
481-
resources:=coderdtest.AwaitWorkspaceAgents(t,client,workspace.ID)
482-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
483-
defercancel()
484-
485-
conn,err:=client.WorkspaceAgentReconnectingPTY(ctx,resources[0].Agents[0].ID,uuid.New(),80,80,"/bin/bash")
486-
require.NoError(t,err)
487-
deferconn.Close()
488-
489-
// First attempt to resize the TTY.
490-
// The websocket will close if it fails!
491-
data,err:=json.Marshal(codersdk.ReconnectingPTYRequest{
492-
Height:250,
493-
Width:250,
494-
})
495-
require.NoError(t,err)
496-
_,err=conn.Write(data)
497-
require.NoError(t,err)
498-
bufRead:=bufio.NewReader(conn)
499-
500-
// Brief pause to reduce the likelihood that we send keystrokes while
501-
// the shell is simultaneously sending a prompt.
502-
time.Sleep(100*time.Millisecond)
503-
504-
data,err=json.Marshal(codersdk.ReconnectingPTYRequest{
505-
Data:"echo test\r\n",
506-
})
507-
require.NoError(t,err)
508-
_,err=conn.Write(data)
509-
require.NoError(t,err)
510-
511-
expectLine:=func(matcherfunc(string)bool) {
512-
for {
513-
line,err:=bufRead.ReadString('\n')
514-
require.NoError(t,err)
515-
ifmatcher(line) {
516-
break
517-
}
518-
}
519-
}
520-
matchEchoCommand:=func(linestring)bool {
521-
returnstrings.Contains(line,"echo test")
522-
}
523-
matchEchoOutput:=func(linestring)bool {
524-
returnstrings.Contains(line,"test")&&!strings.Contains(line,"echo")
525-
}
526-
527-
expectLine(matchEchoCommand)
528-
expectLine(matchEchoOutput)
529-
}
530-
531447
funcTestWorkspaceAgentListeningPorts(t*testing.T) {
532448
t.Parallel()
533449

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp