package uploads import ( "net/http" "net/http/httptest" "testing" "github.com/stretchr/testify/require" "pipu/api/internal/api/gen" ) type uploadQueryHandler struct { gen.Unimplemented statuses []gen.UploadStatus } func (h *uploadQueryHandler) ListMyUploads(w http.ResponseWriter, _ *http.Request, p gen.ListMyUploadsParams) { h.statuses = *p.Status w.WriteHeader(http.StatusNoContent) } func (h *uploadQueryHandler) ListUploads(w http.ResponseWriter, _ *http.Request, p gen.ListUploadsParams) { h.statuses = *p.Status w.WriteHeader(http.StatusNoContent) } func TestUploadFiltersBindCommaSeparatedStatuses(t *testing.T) { for _, path := range []string{"/api/v1/uploads/mine", "/api/v1/admin/uploads"} { t.Run(path, func(t *testing.T) { h := &uploadQueryHandler{} rec := httptest.NewRecorder() gen.Handler(h).ServeHTTP(rec, httptest.NewRequest(http.MethodGet, path+"?status=pending_review,imported,expired&limit=50", nil)) require.Equal(t, http.StatusNoContent, rec.Code, rec.Body.String()) require.Equal(t, []gen.UploadStatus{gen.UploadStatusPendingReview, gen.UploadStatusImported, gen.UploadStatusExpired}, h.statuses) }) } }