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

Function TestWorkspacePortSharePublic

enterprise/coderd/workspaceportshare_test.go:18–62  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

16)
17
18func TestWorkspacePortSharePublic(t *testing.T) {
19 t.Parallel()
20
21 ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{
22 Options: &coderdtest.Options{IncludeProvisionerDaemon: true},
23 LicenseOptions: &coderdenttest.LicenseOptions{
24 Features: license.Features{codersdk.FeatureControlSharedPorts: 1},
25 },
26 })
27 client, user := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID, rbac.RoleTemplateAdmin())
28 r := setupWorkspaceAgent(t, client, codersdk.CreateFirstUserResponse{
29 UserID: user.ID,
30 OrganizationID: owner.OrganizationID,
31 }, 0)
32 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
33 defer cancel()
34
35 templ, err := client.Template(ctx, r.workspace.TemplateID)
36 require.NoError(t, err)
37 require.Equal(t, templ.MaxPortShareLevel, codersdk.WorkspaceAgentPortShareLevelOwner)
38
39 // Try to update port share with template max port share level owner.
40 _, err = client.UpsertWorkspaceAgentPortShare(ctx, r.workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
41 AgentName: r.sdkAgent.Name,
42 Port: 8080,
43 ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,
44 Protocol: codersdk.WorkspaceAgentPortShareProtocolHTTP,
45 })
46 require.Error(t, err, "Port sharing level not allowed")
47
48 // Update the template max port share level to public
49 client.UpdateTemplateMeta(ctx, r.workspace.TemplateID, codersdk.UpdateTemplateMeta{
50 MaxPortShareLevel: ptr.Ref(codersdk.WorkspaceAgentPortShareLevelPublic),
51 })
52
53 // OK
54 ps, err := client.UpsertWorkspaceAgentPortShare(ctx, r.workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
55 AgentName: r.sdkAgent.Name,
56 Port: 8080,
57 ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,
58 Protocol: codersdk.WorkspaceAgentPortShareProtocolHTTP,
59 })
60 require.NoError(t, err)
61 require.EqualValues(t, codersdk.WorkspaceAgentPortShareLevelPublic, ps.ShareLevel)
62}
63
64func TestWorkspacePortShareOrganization(t *testing.T) {
65 t.Parallel()

Callers

nothing calls this directly

Calls 10

NewFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleTemplateAdminFunction · 0.92
RefFunction · 0.92
setupWorkspaceAgentFunction · 0.85
TemplateMethod · 0.80
UpdateTemplateMetaMethod · 0.80
EqualMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected