refactor(server/api/test): withUser helper; migrate 51 context-value sites (A3)

This commit is contained in:
2026-05-08 10:39:11 -04:00
parent bf90a3a868
commit c81491164a
11 changed files with 12 additions and 12 deletions
+1 -1
View File
@@ -51,7 +51,7 @@ func doAdminReq(t *testing.T, h *handlers, method, path string, body []byte, use
if body != nil {
req.Header.Set("Content-Type", "application/json")
}
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
newAdminLidarrRouter(h).ServeHTTP(w, req)
return w
+1 -1
View File
@@ -50,7 +50,7 @@ func doAdminQuarantineReq(t *testing.T, h *handlers, method, path string, body [
if body != nil {
req.Header.Set("Content-Type", "application/json")
}
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
newAdminQuarantineRouter(h).ServeHTTP(w, req)
return w
+1 -1
View File
@@ -45,7 +45,7 @@ func doAdminRequestReq(t *testing.T, h *handlers, method, path string, body []by
if body != nil {
req.Header.Set("Content-Type", "application/json")
}
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
newAdminRequestsRouter(h).ServeHTTP(w, req)
return w
+1 -1
View File
@@ -64,7 +64,7 @@ func newAdminTracksRouter(h *handlers) chi.Router {
func doAdminTracksReq(t *testing.T, h *handlers, method, path string, user dbq.User) *httptest.ResponseRecorder {
t.Helper()
req := httptest.NewRequest(method, path, bytes.NewBuffer(nil))
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
newAdminTracksRouter(h).ServeHTTP(w, req)
return w
+2 -2
View File
@@ -212,7 +212,7 @@ func TestHandleLogout_DeletesSessionAndClearsCookie(t *testing.T) {
req.AddCookie(&http.Cookie{Name: auth.SessionCookieName, Value: token})
// handleLogout runs behind RequireUser in real routing; simulate that by
// putting the user into context here.
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
h.handleLogout(w, req)
@@ -256,7 +256,7 @@ func TestHandleLogout_BearerHeaderWithTrailingWhitespaceDeletesSession(t *testin
req := httptest.NewRequest(http.MethodPost, "/api/auth/logout", nil)
// Trailing whitespace — RequireUser trims this, so logout must too.
req.Header.Set("Authorization", "Bearer "+token+" ")
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
h.handleLogout(w, req)
+1 -1
View File
@@ -19,7 +19,7 @@ import (
func callEvents(h *handlers, user dbq.User, body []byte) *httptest.ResponseRecorder {
req := httptest.NewRequest(http.MethodPost, "/api/events", bytes.NewReader(body))
req.Header.Set("Content-Type", "application/json")
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
h.handleEvents(w, req)
return w
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func callLike(h *handlers, user dbq.User, method, path string) *httptest.ResponseRecorder {
req := httptest.NewRequest(method, path, nil)
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
likesRouter(h).ServeHTTP(w, req)
return w
+1 -1
View File
@@ -15,7 +15,7 @@ func TestHandleGetMe_ReturnsAuthenticatedUser(t *testing.T) {
user := seedUser(t, pool, "alice", "hunter2", true)
req := httptest.NewRequest(http.MethodGet, "/api/me", nil)
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
h.handleGetMe(w, req)
+1 -1
View File
@@ -46,7 +46,7 @@ func doPlaylistsReq(h *handlers, user dbq.User, method, path string, body []byte
if body != nil {
req.Header.Set("Content-Type", "application/json")
}
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
newPlaylistsRouter(h).ServeHTTP(w, req)
return w
+1 -1
View File
@@ -12,7 +12,7 @@ import (
func callRadio(h *handlers, user interface{}, query string) *httptest.ResponseRecorder {
req := httptest.NewRequest(http.MethodGet, "/api/radio?"+query, nil)
req = req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
req = withUser(req, user)
w := httptest.NewRecorder()
h.handleRadio(w, req)
return w
+1 -1
View File
@@ -29,7 +29,7 @@ func newRequestsRouter(h *handlers) chi.Router {
// withUser injects a user into the request context the same way RequireUser does.
func withUser(req *http.Request, user dbq.User) *http.Request {
return req.WithContext(context.WithValue(req.Context(), userCtxKeyForTest(), user))
return withUser(req, user)
}
// doCreateRequest fires POST /api/requests with the given JSON body as the given user.