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

Function TestWorkspaceBuildParam

coderd/httpmw/workspacebuildparam_test.go:20–126  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

18)
19
20func TestWorkspaceBuildParam(t *testing.T) {
21 t.Parallel()
22
23 setupAuthentication := func(db database.Store) (*http.Request, database.WorkspaceTable) {
24 var (
25 user = dbgen.User(t, db, database.User{})
26 _, token = dbgen.APIKey(t, db, database.APIKey{
27 UserID: user.ID,
28 })
29 org = dbgen.Organization(t, db, database.Organization{})
30 tpl = dbgen.Template(t, db, database.Template{
31 OrganizationID: org.ID,
32 CreatedBy: user.ID,
33 })
34 workspace = dbgen.Workspace(t, db, database.WorkspaceTable{
35 OwnerID: user.ID,
36 OrganizationID: org.ID,
37 TemplateID: tpl.ID,
38 })
39 )
40
41 r := httptest.NewRequest("GET", "/", nil)
42 r.Header.Set(codersdk.SessionTokenHeader, token)
43
44 ctx := chi.NewRouteContext()
45 ctx.URLParams.Add("user", user.ID.String())
46 ctx.URLParams.Add("workspace", workspace.Name)
47 r = r.WithContext(context.WithValue(r.Context(), chi.RouteCtxKey, ctx))
48 return r, workspace
49 }
50
51 t.Run("None", func(t *testing.T) {
52 t.Parallel()
53 db, _ := dbtestutil.NewDB(t)
54 rtr := chi.NewRouter()
55 rtr.Use(httpmw.ExtractWorkspaceBuildParam(db))
56 rtr.Get("/", nil)
57 r, _ := setupAuthentication(db)
58 rw := httptest.NewRecorder()
59 rtr.ServeHTTP(rw, r)
60
61 res := rw.Result()
62 defer res.Body.Close()
63 require.Equal(t, http.StatusBadRequest, res.StatusCode)
64 })
65
66 t.Run("NotFound", func(t *testing.T) {
67 t.Parallel()
68 db, _ := dbtestutil.NewDB(t)
69 rtr := chi.NewRouter()
70 rtr.Use(httpmw.ExtractWorkspaceBuildParam(db))
71 rtr.Get("/", nil)
72
73 r, _ := setupAuthentication(db)
74 chi.RouteContext(r.Context()).URLParams.Add("workspacebuild", uuid.NewString())
75 rw := httptest.NewRecorder()
76 rtr.ServeHTTP(rw, r)
77

Callers

nothing calls this directly

Calls 15

UserFunction · 0.92
APIKeyFunction · 0.92
OrganizationFunction · 0.92
TemplateFunction · 0.92
WorkspaceFunction · 0.92
NewDBFunction · 0.92
ExtractAPIKeyMWFunction · 0.92
ExtractWorkspaceParamFunction · 0.92
WorkspaceBuildParamFunction · 0.92
TemplateVersionFunction · 0.92
ProvisionerJobFunction · 0.92

Tested by

no test coverage detected