Skip to content

Commit 304eaef

Browse files
committed
fix tests
1 parent d84734a commit 304eaef

File tree

8 files changed

+49
-25
lines changed

8 files changed

+49
-25
lines changed

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,6 +1604,16 @@ func (s *MethodTestSuite) TestWorkspace() {
16041604
}
16051605

16061606
func (s *MethodTestSuite) TestWorkspacePortSharing() {
1607+
s.Run("UpsertWorkspaceAgentPortShare", s.Subtest(func(db database.Store, check *expects) {
1608+
u := dbgen.User(s.T(), db, database.User{})
1609+
ws := dbgen.Workspace(s.T(), db, database.Workspace{OwnerID: u.ID})
1610+
ps := dbgen.WorkspaceAgentPortShare(s.T(), db, database.WorkspaceAgentPortShare{WorkspaceID: ws.ID})
1611+
check.Args(database.UpsertWorkspaceAgentPortShareParams{
1612+
WorkspaceID: ps.WorkspaceID,
1613+
AgentName: ps.AgentName,
1614+
Port: ps.Port,
1615+
}).Asserts(ws, rbac.ActionUpdate).Returns(ps)
1616+
}))
16071617
s.Run("GetWorkspaceAgentPortShare", s.Subtest(func(db database.Store, check *expects) {
16081618
u := dbgen.User(s.T(), db, database.User{})
16091619
ws := dbgen.Workspace(s.T(), db, database.Workspace{OwnerID: u.ID})

coderd/database/dbmem/dbmem.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7572,8 +7572,8 @@ func (q *FakeQuerier) UpsertWorkspaceAgentPortShare(_ context.Context, arg datab
75727572
defer q.mutex.Unlock()
75737573

75747574
for i, share := range q.workspaceAgentPortShares {
7575-
if share.WorkspaceID == arg.WorkspaceID && share.Port == arg.Port && arg.AgentName == share.AgentName {
7576-
share.Port = arg.Port
7575+
if share.WorkspaceID == arg.WorkspaceID && share.Port == arg.Port && share.AgentName == arg.AgentName {
7576+
share.ShareLevel = arg.ShareLevel
75777577
q.workspaceAgentPortShares[i] = share
75787578
return share, nil
75797579
}

coderd/workspaceagentportshare.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func (api *API) postWorkspaceAgentPortShare(rw http.ResponseWriter, r *http.Requ
2323
ctx := r.Context()
2424
workspace := httpmw.WorkspaceParam(r)
2525
portSharer := *api.PortSharer.Load()
26-
var req codersdk.UpdateWorkspaceAgentPortShareRequest
26+
var req codersdk.UpsertWorkspaceAgentPortShareRequest
2727
if !httpapi.Read(ctx, rw, r, &req) {
2828
return
2929
}

coderd/workspaceagentportshare_test.go

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,36 +39,38 @@ func TestPostWorkspaceAgentPortShare(t *testing.T) {
3939
require.NoError(t, err)
4040

4141
// owner level should fail
42-
err = client.CreateWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpdateWorkspaceAgentPortShareRequest{
42+
_, err = client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
4343
AgentName: agents[0].Name,
4444
Port: 8080,
4545
ShareLevel: codersdk.WorkspaceAgentPortShareLevel("owner"),
4646
})
4747
require.Error(t, err)
4848

4949
// invalid level should fail
50-
err = client.CreateWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpdateWorkspaceAgentPortShareRequest{
50+
_, err = client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
5151
AgentName: agents[0].Name,
5252
Port: 8080,
5353
ShareLevel: codersdk.WorkspaceAgentPortShareLevel("invalid"),
5454
})
5555
require.Error(t, err)
5656

5757
// OK, ignoring template max port share level because we are AGPL
58-
err = client.CreateWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpdateWorkspaceAgentPortShareRequest{
58+
ps, err := client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
5959
AgentName: agents[0].Name,
6060
Port: 8080,
6161
ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,
6262
})
6363
require.NoError(t, err)
64+
require.EqualValues(t, codersdk.WorkspaceAgentPortShareLevelPublic, ps.ShareLevel)
6465

65-
ps, err := db.GetWorkspaceAgentPortShare(dbauthz.As(ctx, coderdtest.AuthzUserSubject(user, owner.OrganizationID)), database.GetWorkspaceAgentPortShareParams{
66-
WorkspaceID: r.Workspace.ID,
67-
AgentName: agents[0].Name,
68-
Port: 8080,
66+
// update share level
67+
ps, err = client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
68+
AgentName: agents[0].Name,
69+
Port: 8080,
70+
ShareLevel: codersdk.WorkspaceAgentPortShareLevelAuthenticated,
6971
})
7072
require.NoError(t, err)
71-
require.EqualValues(t, codersdk.WorkspaceAgentPortShareLevelPublic, ps.ShareLevel)
73+
require.EqualValues(t, codersdk.WorkspaceAgentPortShareLevelAuthenticated, ps.ShareLevel)
7274
}
7375

7476
func TestGetWorkspaceAgentPortShares(t *testing.T) {
@@ -95,7 +97,7 @@ func TestGetWorkspaceAgentPortShares(t *testing.T) {
9597
agents, err := db.GetWorkspaceAgentsInLatestBuildByWorkspaceID(dbauthz.As(ctx, coderdtest.AuthzUserSubject(user, owner.OrganizationID)), r.Workspace.ID)
9698
require.NoError(t, err)
9799

98-
err = client.CreateWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpdateWorkspaceAgentPortShareRequest{
100+
_, err = client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
99101
AgentName: agents[0].Name,
100102
Port: 8080,
101103
ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,
@@ -134,19 +136,29 @@ func TestDeleteWorkspaceAgentPortShare(t *testing.T) {
134136
agents, err := db.GetWorkspaceAgentsInLatestBuildByWorkspaceID(dbauthz.As(ctx, coderdtest.AuthzUserSubject(user, owner.OrganizationID)), r.Workspace.ID)
135137
require.NoError(t, err)
136138

137-
err = client.CreateWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpdateWorkspaceAgentPortShareRequest{
139+
// create
140+
ps, err := client.UpsertWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
138141
AgentName: agents[0].Name,
139142
Port: 8080,
140143
ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,
141144
})
142145
require.NoError(t, err)
146+
require.EqualValues(t, codersdk.WorkspaceAgentPortShareLevelPublic, ps.ShareLevel)
143147

148+
// delete
144149
err = client.DeleteWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.DeleteWorkspaceAgentPortShareRequest{
145150
AgentName: agents[0].Name,
146151
Port: 8080,
147152
})
148153
require.NoError(t, err)
149154

155+
// delete missing
156+
err = client.DeleteWorkspaceAgentPortShare(ctx, r.Workspace.ID, codersdk.DeleteWorkspaceAgentPortShareRequest{
157+
AgentName: agents[0].Name,
158+
Port: 8080,
159+
})
160+
require.Error(t, err)
161+
150162
_, err = db.GetWorkspaceAgentPortShare(dbauthz.As(ctx, coderdtest.AuthzUserSubject(user, owner.OrganizationID)), database.GetWorkspaceAgentPortShareParams{
151163
WorkspaceID: r.Workspace.ID,
152164
AgentName: agents[0].Name,

coderd/workspaceapps/apptest/apptest.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -937,7 +937,7 @@ func Run(t *testing.T, appHostIsPrimary bool, factory DeploymentFactory) {
937937
port, err := strconv.ParseInt(appDetails.Apps.Port.AppSlugOrPort, 10, 32)
938938
require.NoError(t, err)
939939
// set the port we have to be shared with authenticated users
940-
err = appDetails.SDKClient.CreateWorkspaceAgentPortShare(ctx, appDetails.Workspace.ID, codersdk.UpdateWorkspaceAgentPortShareRequest{
940+
_, err = appDetails.SDKClient.UpsertWorkspaceAgentPortShare(ctx, appDetails.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
941941
AgentName: proxyTestAgentName,
942942
Port: int32(port),
943943
ShareLevel: codersdk.WorkspaceAgentPortShareLevelAuthenticated,
@@ -966,7 +966,7 @@ func Run(t *testing.T, appHostIsPrimary bool, factory DeploymentFactory) {
966966
port, err := strconv.ParseInt(appDetails.Apps.Port.AppSlugOrPort, 10, 32)
967967
require.NoError(t, err)
968968
// set the port we have to be shared with public
969-
err = appDetails.SDKClient.CreateWorkspaceAgentPortShare(ctx, appDetails.Workspace.ID, codersdk.UpdateWorkspaceAgentPortShareRequest{
969+
_, err = appDetails.SDKClient.UpsertWorkspaceAgentPortShare(ctx, appDetails.Workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
970970
AgentName: proxyTestAgentName,
971971
Port: int32(port),
972972
ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,

coderd/workspaceapps/request.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ func (r Request) getDatabase(ctx context.Context, db database.Store) (*databaseR
324324
id, err := uuid.Parse(agentNameOrID)
325325
for _, a := range agents {
326326
// if err is nil then it's an UUID
327-
if err != nil && a.ID == id {
327+
if err == nil && a.ID == id {
328328
agentName = a.Name
329329
break
330330
}

codersdk/workspaceagentportshare.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const (
1717

1818
type (
1919
WorkspaceAgentPortShareLevel string
20-
UpdateWorkspaceAgentPortShareRequest struct {
20+
UpsertWorkspaceAgentPortShareRequest struct {
2121
AgentName string `json:"agent_name"`
2222
Port int32 `json:"port"`
2323
ShareLevel WorkspaceAgentPortShareLevel `json:"share_level"`
@@ -59,20 +59,21 @@ func (c *Client) GetWorkspaceAgentPortShares(ctx context.Context, workspaceID uu
5959
return shares, ReadBodyAsError(res)
6060
}
6161

62-
var resp WorkspaceAgentPortShares
63-
return resp, json.NewDecoder(res.Body).Decode(&resp)
62+
return shares, json.NewDecoder(res.Body).Decode(&shares)
6463
}
6564

66-
func (c *Client) CreateWorkspaceAgentPortShare(ctx context.Context, workspaceID uuid.UUID, req UpdateWorkspaceAgentPortShareRequest) error {
65+
func (c *Client) UpsertWorkspaceAgentPortShare(ctx context.Context, workspaceID uuid.UUID, req UpsertWorkspaceAgentPortShareRequest) (WorkspaceAgentPortShare, error) {
66+
var share WorkspaceAgentPortShare
6767
res, err := c.Request(ctx, http.MethodPost, fmt.Sprintf("/api/v2/workspaces/%s/port-share", workspaceID), req)
6868
if err != nil {
69-
return err
69+
return share, err
7070
}
7171
defer res.Body.Close()
7272
if res.StatusCode != http.StatusOK {
73-
return ReadBodyAsError(res)
73+
return share, ReadBodyAsError(res)
7474
}
75-
return nil
75+
76+
return share, json.NewDecoder(res.Body).Decode(&share)
7677
}
7778

7879
func (c *Client) DeleteWorkspaceAgentPortShare(ctx context.Context, workspaceID uuid.UUID, req DeleteWorkspaceAgentPortShareRequest) error {

enterprise/coderd/workspaceportshare_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func TestWorkspacePortShare(t *testing.T) {
3939
defer cancel()
4040

4141
// try to update port share with template max port share level owner
42-
err := client.CreateWorkspaceAgentPortShare(ctx, workspace.ID, codersdk.UpdateWorkspaceAgentPortShareRequest{
42+
_, err := client.UpsertWorkspaceAgentPortShare(ctx, workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
4343
AgentName: agent.Name,
4444
Port: 8080,
4545
ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,
@@ -53,10 +53,11 @@ func TestWorkspacePortShare(t *testing.T) {
5353
})
5454

5555
// OK
56-
err = client.CreateWorkspaceAgentPortShare(ctx, workspace.ID, codersdk.UpdateWorkspaceAgentPortShareRequest{
56+
ps, err := client.UpsertWorkspaceAgentPortShare(ctx, workspace.ID, codersdk.UpsertWorkspaceAgentPortShareRequest{
5757
AgentName: agent.Name,
5858
Port: 8080,
5959
ShareLevel: codersdk.WorkspaceAgentPortShareLevelPublic,
6060
})
6161
require.NoError(t, err)
62+
require.EqualValues(t, codersdk.WorkspaceAgentPortShareLevelPublic, ps.ShareLevel)
6263
}

0 commit comments

Comments
 (0)