Adding upstream version 2.52.6.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
a960158181
commit
6d002e9543
441 changed files with 95392 additions and 0 deletions
21
middleware/skip/skip.go
Normal file
21
middleware/skip/skip.go
Normal file
|
@ -0,0 +1,21 @@
|
|||
package skip
|
||||
|
||||
import (
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
// New creates a middleware handler which skips the wrapped handler
|
||||
// if the exclude predicate returns true.
|
||||
func New(handler fiber.Handler, exclude func(c *fiber.Ctx) bool) fiber.Handler {
|
||||
if exclude == nil {
|
||||
return handler
|
||||
}
|
||||
|
||||
return func(c *fiber.Ctx) error {
|
||||
if exclude(c) {
|
||||
return c.Next()
|
||||
}
|
||||
|
||||
return handler(c)
|
||||
}
|
||||
}
|
57
middleware/skip/skip_test.go
Normal file
57
middleware/skip/skip_test.go
Normal file
|
@ -0,0 +1,57 @@
|
|||
package skip_test
|
||||
|
||||
import (
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/gofiber/fiber/v2/middleware/skip"
|
||||
"github.com/gofiber/fiber/v2/utils"
|
||||
)
|
||||
|
||||
// go test -run Test_Skip
|
||||
func Test_Skip(t *testing.T) {
|
||||
t.Parallel()
|
||||
app := fiber.New()
|
||||
|
||||
app.Use(skip.New(errTeapotHandler, func(*fiber.Ctx) bool { return true }))
|
||||
app.Get("/", helloWorldHandler)
|
||||
|
||||
resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", nil))
|
||||
utils.AssertEqual(t, nil, err)
|
||||
utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode)
|
||||
}
|
||||
|
||||
// go test -run Test_SkipFalse
|
||||
func Test_SkipFalse(t *testing.T) {
|
||||
t.Parallel()
|
||||
app := fiber.New()
|
||||
|
||||
app.Use(skip.New(errTeapotHandler, func(*fiber.Ctx) bool { return false }))
|
||||
app.Get("/", helloWorldHandler)
|
||||
|
||||
resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", nil))
|
||||
utils.AssertEqual(t, nil, err)
|
||||
utils.AssertEqual(t, fiber.StatusTeapot, resp.StatusCode)
|
||||
}
|
||||
|
||||
// go test -run Test_SkipNilFunc
|
||||
func Test_SkipNilFunc(t *testing.T) {
|
||||
t.Parallel()
|
||||
app := fiber.New()
|
||||
|
||||
app.Use(skip.New(errTeapotHandler, nil))
|
||||
app.Get("/", helloWorldHandler)
|
||||
|
||||
resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", nil))
|
||||
utils.AssertEqual(t, nil, err)
|
||||
utils.AssertEqual(t, fiber.StatusTeapot, resp.StatusCode)
|
||||
}
|
||||
|
||||
func helloWorldHandler(c *fiber.Ctx) error {
|
||||
return c.SendString("Hello, World 👋!")
|
||||
}
|
||||
|
||||
func errTeapotHandler(*fiber.Ctx) error {
|
||||
return fiber.ErrTeapot
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue