22 lines
916 B
Go
22 lines
916 B
Go
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)
|
|
}
|
|
}
|