mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-03-19 14:17:48 +02:00
75 lines
1.4 KiB
Go
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)
|
|
})
|
|
}
|
|
}
|