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

Function TestWorkspaceAgentParam

coderd/httpmw/workspaceagentparam_test.go:24–158  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

22)
23
24func TestWorkspaceAgentParam(t *testing.T) {
25 t.Parallel()
26
27 setupAuthentication := func(db database.Store) (*http.Request, database.WorkspaceAgent) {
28 var (
29 user = dbgen.User(t, db, database.User{})
30 _, token = dbgen.APIKey(t, db, database.APIKey{
31 UserID: user.ID,
32 })
33 tpl = dbgen.Template(t, db, database.Template{})
34 workspace = dbgen.Workspace(t, db, database.WorkspaceTable{
35 OwnerID: user.ID,
36 TemplateID: tpl.ID,
37 })
38 build = dbgen.WorkspaceBuild(t, db, database.WorkspaceBuild{
39 WorkspaceID: workspace.ID,
40 Transition: database.WorkspaceTransitionStart,
41 Reason: database.BuildReasonInitiator,
42 })
43 job = dbgen.ProvisionerJob(t, db, nil, database.ProvisionerJob{
44 ID: build.JobID,
45 Type: database.ProvisionerJobTypeWorkspaceBuild,
46 Provisioner: database.ProvisionerTypeEcho,
47 StorageMethod: database.ProvisionerStorageMethodFile,
48 })
49 resource = dbgen.WorkspaceResource(t, db, database.WorkspaceResource{
50 JobID: job.ID,
51 Transition: database.WorkspaceTransitionStart,
52 })
53 agent = dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{
54 ResourceID: resource.ID,
55 })
56 )
57
58 r := httptest.NewRequest("GET", "/", nil)
59 r.Header.Set(codersdk.SessionTokenHeader, token)
60
61 ctx := chi.NewRouteContext()
62 ctx.URLParams.Add("user", user.ID.String())
63 ctx.URLParams.Add("workspaceagent", agent.ID.String())
64 r = r.WithContext(context.WithValue(r.Context(), chi.RouteCtxKey, ctx))
65 return r, agent
66 }
67
68 t.Run("None", func(t *testing.T) {
69 t.Parallel()
70 db, _ := dbtestutil.NewDB(t)
71 dbtestutil.DisableForeignKeysAndTriggers(t, db)
72 rtr := chi.NewRouter()
73 rtr.Use(httpmw.ExtractWorkspaceBuildParam(db))
74 rtr.Get("/", nil)
75 r, _ := setupAuthentication(db)
76 rw := httptest.NewRecorder()
77 rtr.ServeHTTP(rw, r)
78
79 res := rw.Result()
80 defer res.Body.Close()
81 require.Equal(t, http.StatusBadRequest, res.StatusCode)

Callers

nothing calls this directly

Calls 15

UserFunction · 0.92
APIKeyFunction · 0.92
TemplateFunction · 0.92
WorkspaceFunction · 0.92
WorkspaceBuildFunction · 0.92
ProvisionerJobFunction · 0.92
WorkspaceResourceFunction · 0.92
WorkspaceAgentFunction · 0.92
NewDBFunction · 0.92

Tested by

no test coverage detected