package httpserver import ( "net/http/httptest" "net/url" "testing" ) func TestWorkflowListQueryStrictFilters(t *testing.T) { for _, query := range []string{"limit=0", "limit=", "limit=x", "state=", "state=RUNNING&state=WAITING", "paused=0", "paused=True", "unknown=x", "business_key=", "created_from=tomorrow", "version=%zz", "state=WAITING;limit=2"} { r := httptest.NewRequest("GET", "/v1/workflows?"+query, nil) if _, err := workflowListQuery(r); err == nil { t.Fatal("accepted", query) } } q := url.Values{"business_key": {"关联 +/%\n "}, "paused": {"false"}, "created_from": {"2026-09-18T08:00:00.123456+08:00"}, "limit": {"2"}} in, err := workflowListQuery(httptest.NewRequest("GET", "/v1/workflows?"+q.Encode(), nil)) if err != nil || in.BusinessKey != q.Get("business_key") || in.Paused == nil || *in.Paused || in.Limit != 2 || in.CreatedFrom.UTC().Hour() != 0 { t.Fatal(in, err) } }