1
0
mirror of https://github.com/pocketbase/pocketbase.git synced 2025-03-19 14:17:48 +02:00
pocketbase/core/event_request_batch_test.go
2024-09-29 21:09:46 +03:00

75 lines
1.4 KiB
Go

package core_test
import (
"net/http"
"strings"
"testing"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tests"
)
func TestInternalRequestValidate(t *testing.T) {
scenarios := []struct {
name string
request core.InternalRequest
expectedErrors []string
}{
{
"empty struct",
core.InternalRequest{},
[]string{"method", "url"},
},
// method
{
"GET method",
core.InternalRequest{URL: "test", Method: http.MethodGet},
[]string{},
},
{
"POST method",
core.InternalRequest{URL: "test", Method: http.MethodPost},
[]string{},
},
{
"PUT method",
core.InternalRequest{URL: "test", Method: http.MethodPut},
[]string{},
},
{
"PATCH method",
core.InternalRequest{URL: "test", Method: http.MethodPatch},
[]string{},
},
{
"DELETE method",
core.InternalRequest{URL: "test", Method: http.MethodDelete},
[]string{},
},
{
"unknown method",
core.InternalRequest{URL: "test", Method: "unknown"},
[]string{"method"},
},
// url
{
"url <= 2000",
core.InternalRequest{URL: strings.Repeat("a", 2000), Method: http.MethodGet},
[]string{},
},
{
"url > 2000",
core.InternalRequest{URL: strings.Repeat("a", 2001), Method: http.MethodGet},
[]string{"url"},
},
}
for _, s := range scenarios {
t.Run(s.name, func(t *testing.T) {
tests.TestValidationErrors(t, s.request.Validate(), s.expectedErrors)
})
}
}