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

Function TestWorkspaceResourceParam

coderd/httpmw/workspaceresourceparam_test.go:19–125  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

17)
18
19func TestWorkspaceResourceParam(t *testing.T) {
20 t.Parallel()
21
22 setup := func(t *testing.T, db database.Store, jobType database.ProvisionerJobType) (*http.Request, database.WorkspaceResource) {
23 r := httptest.NewRequest("GET", "/", nil)
24 dbtestutil.DisableForeignKeysAndTriggers(t, db)
25 job := dbgen.ProvisionerJob(t, db, nil, database.ProvisionerJob{
26 Type: jobType,
27 Provisioner: database.ProvisionerTypeEcho,
28 StorageMethod: database.ProvisionerStorageMethodFile,
29 })
30
31 build := dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
32 JobID: job.ID,
33 Transition: database.WorkspaceTransitionStart,
34 Reason: database.BuildReasonInitiator,
35 })
36
37 resource := dbgen.WorkspaceResource(t, db, database.WorkspaceResource{
38 JobID: job.ID,
39 Transition: database.WorkspaceTransitionStart,
40 })
41
42 routeCtx := chi.NewRouteContext()
43 routeCtx.URLParams.Add("workspacebuild", build.ID.String())
44 r = r.WithContext(context.WithValue(r.Context(), chi.RouteCtxKey, routeCtx))
45 return r, resource
46 }
47
48 t.Run("None", func(t *testing.T) {
49 t.Parallel()
50 db, _ := dbtestutil.NewDB(t)
51 rtr := chi.NewRouter()
52 rtr.Use(httpmw.ExtractWorkspaceResourceParam(db))
53 rtr.Get("/", nil)
54 r, _ := setup(t, db, database.ProvisionerJobTypeWorkspaceBuild)
55 rw := httptest.NewRecorder()
56 rtr.ServeHTTP(rw, r)
57
58 res := rw.Result()
59 defer res.Body.Close()
60 require.Equal(t, http.StatusBadRequest, res.StatusCode)
61 })
62
63 t.Run("NotFound", func(t *testing.T) {
64 t.Parallel()
65 db, _ := dbtestutil.NewDB(t)
66 rtr := chi.NewRouter()
67 rtr.Use(
68 httpmw.ExtractWorkspaceResourceParam(db),
69 )
70 rtr.Get("/", nil)
71
72 r, _ := setup(t, db, database.ProvisionerJobTypeWorkspaceBuild)
73 chi.RouteContext(r.Context()).URLParams.Add("workspaceresource", uuid.NewString())
74 rw := httptest.NewRecorder()
75 rtr.ServeHTTP(rw, r)
76

Callers

nothing calls this directly

Calls 15

ProvisionerJobFunction · 0.92
WorkspaceBuildFunction · 0.92
WorkspaceResourceFunction · 0.92
NewDBFunction · 0.92
WorkspaceResourceParamFunction · 0.92
WithContextMethod · 0.80
setupFunction · 0.70
AddMethod · 0.65
ContextMethod · 0.65
RunMethod · 0.65

Tested by

no test coverage detected