@@ -18,11 +18,11 @@ import (
18
18
func TestWorkspaceResourceParam (t * testing.T ) {
19
19
t .Parallel ()
20
20
21
- setup := func (db database.Store ) (* http.Request , database.WorkspaceResource ) {
21
+ setup := func (db database.Store , jobType database. ProvisionerJobType ) (* http.Request , database.WorkspaceResource ) {
22
22
r := httptest .NewRequest ("GET" , "/" , nil )
23
23
job , err := db .InsertProvisionerJob (context .Background (), database.InsertProvisionerJobParams {
24
24
ID : uuid .New (),
25
- Type : database . ProvisionerJobTypeWorkspaceBuild ,
25
+ Type : jobType ,
26
26
})
27
27
require .NoError (t , err )
28
28
workspaceBuild , err := db .InsertWorkspaceBuild (context .Background (), database.InsertWorkspaceBuildParams {
@@ -48,7 +48,7 @@ func TestWorkspaceResourceParam(t *testing.T) {
48
48
rtr := chi .NewRouter ()
49
49
rtr .Use (httpmw .ExtractWorkspaceResourceParam (db ))
50
50
rtr .Get ("/" , nil )
51
- r , _ := setup (db )
51
+ r , _ := setup (db , database . ProvisionerJobTypeWorkspaceBuild )
52
52
rw := httptest .NewRecorder ()
53
53
rtr .ServeHTTP (rw , r )
54
54
@@ -66,7 +66,7 @@ func TestWorkspaceResourceParam(t *testing.T) {
66
66
)
67
67
rtr .Get ("/" , nil )
68
68
69
- r , _ := setup (db )
69
+ r , _ := setup (db , database . ProvisionerJobTypeWorkspaceBuild )
70
70
chi .RouteContext (r .Context ()).URLParams .Add ("workspaceresource" , uuid .NewString ())
71
71
rw := httptest .NewRecorder ()
72
72
rtr .ServeHTTP (rw , r )
@@ -76,6 +76,28 @@ func TestWorkspaceResourceParam(t *testing.T) {
76
76
require .Equal (t , http .StatusNotFound , res .StatusCode )
77
77
})
78
78
79
+ t .Run ("FoundBadJobType" , func (t * testing.T ) {
80
+ t .Parallel ()
81
+ db := databasefake .New ()
82
+ rtr := chi .NewRouter ()
83
+ rtr .Use (
84
+ httpmw .ExtractWorkspaceResourceParam (db ),
85
+ )
86
+ rtr .Get ("/" , func (rw http.ResponseWriter , r * http.Request ) {
87
+ _ = httpmw .WorkspaceResourceParam (r )
88
+ rw .WriteHeader (http .StatusOK )
89
+ })
90
+
91
+ r , job := setup (db , database .ProvisionerJobTypeProjectVersionImport )
92
+ chi .RouteContext (r .Context ()).URLParams .Add ("workspaceresource" , job .ID .String ())
93
+ rw := httptest .NewRecorder ()
94
+ rtr .ServeHTTP (rw , r )
95
+
96
+ res := rw .Result ()
97
+ defer res .Body .Close ()
98
+ require .Equal (t , http .StatusBadRequest , res .StatusCode )
99
+ })
100
+
79
101
t .Run ("Found" , func (t * testing.T ) {
80
102
t .Parallel ()
81
103
db := databasefake .New ()
@@ -88,7 +110,7 @@ func TestWorkspaceResourceParam(t *testing.T) {
88
110
rw .WriteHeader (http .StatusOK )
89
111
})
90
112
91
- r , job := setup (db )
113
+ r , job := setup (db , database . ProvisionerJobTypeWorkspaceBuild )
92
114
chi .RouteContext (r .Context ()).URLParams .Add ("workspaceresource" , job .ID .String ())
93
115
rw := httptest .NewRecorder ()
94
116
rtr .ServeHTTP (rw , r )
0 commit comments