MCPcopy Index your code
hub / github.com/coder/coder / TestPostWorkspaceAgentPortShare

Function TestPostWorkspaceAgentPortShare

coderd/workspaceagentportshare_test.go:18–132  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

16)
17
18func TestPostWorkspaceAgentPortShare(t *testing.T) {
19 t.Parallel()
20 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
21 defer cancel()
22 ownerClient, db := coderdtest.NewWithDatabase(t, nil)
23 owner := coderdtest.CreateFirstUser(t, ownerClient)
24 client, user := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID)
25
26 tmpDir := t.TempDir()
27 r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
28 OrganizationID: owner.OrganizationID,
29 OwnerID: user.ID,
30 }).WithAgent(func(agents []*proto.Agent) []*proto.Agent {
31 agents[0].Directory = tmpDir
32 return agents
33 }).Do()
34 agents, err := db.GetWorkspaceAgentsInLatestBuildByWorkspaceID(dbauthz.As(ctx, coderdtest.AuthzUserSubjectWithDB(ctx, t, db, user)), r.Workspace.ID)
35 require.NoError(t, err)
36
37 // owner level should fail
38 _, err = client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
39 AgentName: agents[0].Name,
40 Port: 8080,
41 ShareLevel: codersdk.WorkspaceAgentPortShareLevel("owner"),
42 Protocol: codersdk.WorkspaceAgentPortShareProtocolHTTP,
43 })
44 require.Error(t, err)
45
46 // invalid level should fail
47 _, err = client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
48 AgentName: agents[0].Name,
49 Port: 8080,
50 ShareLevel: codersdk.WorkspaceAgentPortShareLevel("invalid"),
51 Protocol: codersdk.WorkspaceAgentPortShareProtocolHTTP,
52 })
53 require.Error(t, err)
54
55 // invalid protocol should fail
56 _, err = client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
57 AgentName: agents[0].Name,
58 Port: 8080,
59 ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,
60 Protocol: codersdk.WorkspaceAgentPortShareProtocol("invalid"),
61 })
62 require.Error(t, err)
63
64 // invalid port should fail
65 _, err = client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
66 AgentName: agents[0].Name,
67 Port: 0,
68 ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,
69 Protocol: codersdk.WorkspaceAgentPortShareProtocolHTTP,
70 })
71 require.Error(t, err)
72 _, err = client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
73 AgentName: agents[0].Name,
74 Port: 90000000,
75 ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,

Callers

nothing calls this directly

Calls 15

NewWithDatabaseFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
WorkspaceBuildFunction · 0.92
AsFunction · 0.92
AuthzUserSubjectWithDBFunction · 0.92
WithAgentMethod · 0.80
TempDirMethod · 0.65
DoMethod · 0.65

Tested by

no test coverage detected