Skip to content

Commit 4293914

Browse files
committed
Fix codecov ignore
1 parent 878738c commit 4293914

File tree

5 files changed

+76
-8
lines changed

5 files changed

+76
-8
lines changed

codecov.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,13 @@ ignore:
2626
# This is generated code.
2727
- database/models.go
2828
- database/query.sql.go
29-
# All coderd tests fail if this doesn't work.
3029
- database/databasefake
30+
# These are generated or don't require tests.
31+
- cmd
32+
- database/dump
33+
- database/postgres
3134
- peerbroker/proto
3235
- provisionerd/proto
3336
- provisionersdk/proto
3437
- scripts/datadog-cireport
38+
- rules.go

httpmw/projectparam_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,23 @@ func TestProjectParam(t *testing.T) {
110110
require.Equal(t, http.StatusNotFound, res.StatusCode)
111111
})
112112

113+
t.Run("BadUUID", func(t *testing.T) {
114+
t.Parallel()
115+
db := databasefake.New()
116+
rtr := chi.NewRouter()
117+
rtr.Use(httpmw.ExtractProjectParam(db))
118+
rtr.Get("/", nil)
119+
120+
r, _ := setupAuthentication(db)
121+
chi.RouteContext(r.Context()).URLParams.Add("project", "not-a-uuid")
122+
rw := httptest.NewRecorder()
123+
rtr.ServeHTTP(rw, r)
124+
125+
res := rw.Result()
126+
defer res.Body.Close()
127+
require.Equal(t, http.StatusBadRequest, res.StatusCode)
128+
})
129+
113130
t.Run("Project", func(t *testing.T) {
114131
t.Parallel()
115132
db := databasefake.New()

httpmw/workspaceparam.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ func ExtractWorkspaceParam(db database.Store) func(http.Handler) http.Handler {
4646

4747
apiKey := APIKey(r)
4848
if apiKey.UserID != workspace.OwnerID {
49-
httpapi.Write(rw, http.StatusBadRequest, httpapi.Response{
50-
Message: "getting non-personal workspaces isn't supported yet",
49+
httpapi.Write(rw, http.StatusUnauthorized, httpapi.Response{
50+
Message: "getting non-personal workspaces isn't supported",
5151
})
5252
return
5353
}

httpmw/workspaceparam_test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,31 @@ func TestWorkspaceParam(t *testing.T) {
9393
require.Equal(t, http.StatusNotFound, res.StatusCode)
9494
})
9595

96+
t.Run("NonPersonal", func(t *testing.T) {
97+
t.Parallel()
98+
db := databasefake.New()
99+
rtr := chi.NewRouter()
100+
rtr.Use(
101+
httpmw.ExtractAPIKey(db, nil),
102+
httpmw.ExtractWorkspaceParam(db),
103+
)
104+
rtr.Get("/", nil)
105+
r, _ := setup(db)
106+
workspace, err := db.InsertWorkspace(context.Background(), database.InsertWorkspaceParams{
107+
ID: uuid.New(),
108+
OwnerID: "not-me",
109+
Name: "hello",
110+
})
111+
require.NoError(t, err)
112+
chi.RouteContext(r.Context()).URLParams.Add("workspace", workspace.ID.String())
113+
rw := httptest.NewRecorder()
114+
rtr.ServeHTTP(rw, r)
115+
116+
res := rw.Result()
117+
defer res.Body.Close()
118+
require.Equal(t, http.StatusUnauthorized, res.StatusCode)
119+
})
120+
96121
t.Run("Found", func(t *testing.T) {
97122
t.Parallel()
98123
db := databasefake.New()

httpmw/workspaceresourceparam_test.go

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ import (
1818
func TestWorkspaceResourceParam(t *testing.T) {
1919
t.Parallel()
2020

21-
setup := func(db database.Store) (*http.Request, database.WorkspaceResource) {
21+
setup := func(db database.Store, jobType database.ProvisionerJobType) (*http.Request, database.WorkspaceResource) {
2222
r := httptest.NewRequest("GET", "/", nil)
2323
job, err := db.InsertProvisionerJob(context.Background(), database.InsertProvisionerJobParams{
2424
ID: uuid.New(),
25-
Type: database.ProvisionerJobTypeWorkspaceBuild,
25+
Type: jobType,
2626
})
2727
require.NoError(t, err)
2828
workspaceBuild, err := db.InsertWorkspaceBuild(context.Background(), database.InsertWorkspaceBuildParams{
@@ -48,7 +48,7 @@ func TestWorkspaceResourceParam(t *testing.T) {
4848
rtr := chi.NewRouter()
4949
rtr.Use(httpmw.ExtractWorkspaceResourceParam(db))
5050
rtr.Get("/", nil)
51-
r, _ := setup(db)
51+
r, _ := setup(db, database.ProvisionerJobTypeWorkspaceBuild)
5252
rw := httptest.NewRecorder()
5353
rtr.ServeHTTP(rw, r)
5454

@@ -66,7 +66,7 @@ func TestWorkspaceResourceParam(t *testing.T) {
6666
)
6767
rtr.Get("/", nil)
6868

69-
r, _ := setup(db)
69+
r, _ := setup(db, database.ProvisionerJobTypeWorkspaceBuild)
7070
chi.RouteContext(r.Context()).URLParams.Add("workspaceresource", uuid.NewString())
7171
rw := httptest.NewRecorder()
7272
rtr.ServeHTTP(rw, r)
@@ -76,6 +76,28 @@ func TestWorkspaceResourceParam(t *testing.T) {
7676
require.Equal(t, http.StatusNotFound, res.StatusCode)
7777
})
7878

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+
79101
t.Run("Found", func(t *testing.T) {
80102
t.Parallel()
81103
db := databasefake.New()
@@ -88,7 +110,7 @@ func TestWorkspaceResourceParam(t *testing.T) {
88110
rw.WriteHeader(http.StatusOK)
89111
})
90112

91-
r, job := setup(db)
113+
r, job := setup(db, database.ProvisionerJobTypeWorkspaceBuild)
92114
chi.RouteContext(r.Context()).URLParams.Add("workspaceresource", job.ID.String())
93115
rw := httptest.NewRecorder()
94116
rtr.ServeHTTP(rw, r)

0 commit comments

Comments
 (0)