Skip to content

Commit 2432d98

Browse files
committed
Add more tests
1 parent 606d2db commit 2432d98

File tree

18 files changed

+211
-57
lines changed

18 files changed

+211
-57
lines changed

coderd/apidoc/docs.go

Lines changed: 19 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/apidoc/swagger.json

Lines changed: 15 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/coderd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -955,7 +955,7 @@ func New(options *Options) *API {
955955
r.Delete("/favorite", api.deleteFavoriteWorkspace)
956956
r.Put("/autoupdates", api.putWorkspaceAutoupdates)
957957
r.Get("/resolve-autostart", api.resolveAutostart)
958-
r.Post("/port-sharing", api.postWorkspacePortShareLevel)
958+
r.Post("/port-share", api.postWorkspacePortShare)
959959
})
960960
})
961961
r.Route("/workspacebuilds/{workspacebuild}", func(r chi.Router) {

coderd/database/dbgen/dbgen.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func Template(t testing.TB, db database.Store, seed database.Template) database.
9090
GroupACL: seed.GroupACL,
9191
DisplayName: takeFirst(seed.DisplayName, namesgenerator.GetRandomName(1)),
9292
AllowUserCancelWorkspaceJobs: seed.AllowUserCancelWorkspaceJobs,
93-
MaxPortSharingLevel: takeFirst(seed.MaxPortSharingLevel, 0),
93+
MaxPortSharingLevel: takeFirst(seed.MaxPortShareLevel, 0),
9494
})
9595
require.NoError(t, err, "insert template")
9696

coderd/database/dbmem/dbmem.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6582,6 +6582,7 @@ func (q *FakeQuerier) UpdateTemplateMetaByID(_ context.Context, arg database.Upd
65826582
tpl.Icon = arg.Icon
65836583
tpl.GroupACL = arg.GroupACL
65846584
tpl.AllowUserCancelWorkspaceJobs = arg.AllowUserCancelWorkspaceJobs
6585+
tpl.MaxPortSharingLevel = arg.MaxPortSharingLevel
65856586
q.templates[idx] = tpl
65866587
return nil
65876588
}

coderd/database/modelqueries.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func (q *sqlQuerier) GetAuthorizedTemplates(ctx context.Context, arg GetTemplate
9090
&i.RequireActiveVersion,
9191
&i.Deprecated,
9292
&i.UseMaxTtl,
93-
&i.MaxPortSharingLevel,
93+
&i.MaxPortShareLevel,
9494
&i.CreatedByAvatarURL,
9595
&i.CreatedByUsername,
9696
); err != nil {

coderd/database/models.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/templates.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ func (api *API) patchTemplateMeta(rw http.ResponseWriter, r *http.Request) {
631631
if req.TimeTilDormantAutoDeleteMillis < 0 || (req.TimeTilDormantAutoDeleteMillis > 0 && req.TimeTilDormantAutoDeleteMillis < minTTL) {
632632
validErrs = append(validErrs, codersdk.ValidationError{Field: "time_til_dormant_autodelete_ms", Detail: "Value must be at least one minute."})
633633
}
634-
maxPortShareLevel := template.MaxPortSharingLevel
634+
maxPortShareLevel := template.MaxPortShareLevel
635635
if req.MaxPortShareLevel != nil {
636636
if *req.MaxPortShareLevel < 0 || *req.MaxPortShareLevel > 2 {
637637
validErrs = append(validErrs, codersdk.ValidationError{Field: "max_port_sharing_level", Detail: "Value must be between 0 and 2."})
@@ -671,7 +671,7 @@ func (api *API) patchTemplateMeta(rw http.ResponseWriter, r *http.Request) {
671671
req.TimeTilDormantAutoDeleteMillis == time.Duration(template.TimeTilDormantAutoDelete).Milliseconds() &&
672672
req.RequireActiveVersion == template.RequireActiveVersion &&
673673
(deprecationMessage == template.Deprecated) &&
674-
maxPortShareLevel == template.MaxPortSharingLevel {
674+
maxPortShareLevel == template.MaxPortShareLevel {
675675
return nil
676676
}
677677

@@ -911,5 +911,6 @@ func (api *API) convertTemplate(
911911
RequireActiveVersion: templateAccessControl.RequireActiveVersion,
912912
Deprecated: templateAccessControl.IsDeprecated(),
913913
DeprecationMessage: templateAccessControl.Deprecated,
914+
MaxPortShareLevel: template.MaxPortShareLevel,
914915
}
915916
}

coderd/workspaceportshare.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@ import (
1111
"github.com/coder/coder/v2/codersdk"
1212
)
1313

14-
// @Summary Update port sharing level
15-
// @ID update-workspace-port-sharing-level
14+
// @Summary Update port share
15+
// @ID update-workspace-port-share
1616
// @Security CoderSessionToken
1717
// @Accept json
1818
// @Produce json
1919
// @Tags PortSharing
20-
// @Param request body codersdk.UpdateWorkspaceAgentPortShareLevelRequest true "Update port sharing level request"
20+
// @Param request body codersdk.UpdateWorkspaceAgentPortShareRequest true "Update port sharing level request"
2121
// @Success 200
22-
// @Router /workspaces/{workspace}/port-sharing [post]
23-
func (api *API) postWorkspacePortShareLevel(rw http.ResponseWriter, r *http.Request) {
22+
// @Router /workspaces/{workspace}/port-share [post]
23+
func (api *API) postWorkspacePortShare(rw http.ResponseWriter, r *http.Request) {
2424
ctx := r.Context()
2525
workspace := httpmw.WorkspaceParam(r)
2626
portSharer := *api.PortSharer.Load()
27-
var req codersdk.UpdateWorkspaceAgentPortShareLevelRequest
27+
var req codersdk.UpdateWorkspaceAgentPortShareRequest
2828
if !httpapi.Read(ctx, rw, r, &req) {
2929
return
3030
}
@@ -36,9 +36,9 @@ func (api *API) postWorkspacePortShareLevel(rw http.ResponseWriter, r *http.Requ
3636
return
3737
}
3838

39-
if req.ShareLevel > template.MaxPortSharingLevel {
39+
if req.ShareLevel > codersdk.WorkspacePortShareLevel(template.MaxPortShareLevel) || req.ShareLevel < 0 {
4040
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
41-
Message: "Port sharing level not allowed.",
41+
Message: "Port sharing level not allowed. Must be between 0 and 2.",
4242
})
4343
return
4444
}
@@ -75,7 +75,7 @@ func (api *API) postWorkspacePortShareLevel(rw http.ResponseWriter, r *http.Requ
7575
return
7676
}
7777

78-
if req.ShareLevel == int32(codersdk.WorkspaceAgentPortShareLevelOwner) {
78+
if req.ShareLevel == codersdk.WorkspaceAgentPortShareLevelOwner {
7979
// If the port is not shared, and the user is trying to set it to owner,
8080
// we don't need to do anything.
8181
rw.WriteHeader(http.StatusOK)
@@ -86,7 +86,7 @@ func (api *API) postWorkspacePortShareLevel(rw http.ResponseWriter, r *http.Requ
8686
WorkspaceID: workspace.ID,
8787
AgentName: req.AgentName,
8888
Port: req.Port,
89-
ShareLevel: req.ShareLevel,
89+
ShareLevel: int32(req.ShareLevel),
9090
})
9191
if err != nil {
9292
httpapi.InternalServerError(rw, err)
@@ -118,7 +118,7 @@ func (api *API) postWorkspacePortShareLevel(rw http.ResponseWriter, r *http.Requ
118118
WorkspaceID: psl.WorkspaceID,
119119
AgentName: psl.AgentName,
120120
Port: psl.Port,
121-
ShareLevel: req.ShareLevel,
121+
ShareLevel: int32(req.ShareLevel),
122122
})
123123
if err != nil {
124124
httpapi.InternalServerError(rw, err)

0 commit comments

Comments
 (0)