MCPcopy
hub / github.com/gofiber/fiber / Test_Route_URL

Function Test_Route_URL

router_test.go:2408–2610  ·  view source on GitHub ↗

go test -run Test_Route_URL

(t *testing.T)

Source from the content-addressed store, hash-verified

2406
2407// go test -run Test_Route_URL
2408func Test_Route_URL(t *testing.T) {
2409 t.Parallel()
2410
2411 t.Run("simple parameter", func(t *testing.T) {
2412 t.Parallel()
2413 app := New()
2414 app.Get("/user/:name", emptyHandler).Name("User")
2415
2416 route := app.GetRoute("User")
2417 url, err := route.URL(Map{"name": "fiber"})
2418 require.NoError(t, err)
2419 require.Equal(t, "/user/fiber", url)
2420 })
2421
2422 t.Run("multiple parameters", func(t *testing.T) {
2423 t.Parallel()
2424 app := New()
2425 app.Get("/user/:name/:id", emptyHandler).Name("UserID")
2426
2427 route := app.GetRoute("UserID")
2428 url, err := route.URL(Map{"name": "john", "id": "123"})
2429 require.NoError(t, err)
2430 require.Equal(t, "/user/john/123", url)
2431 })
2432
2433 t.Run("wildcard parameters", func(t *testing.T) {
2434 t.Parallel()
2435 app := New()
2436 app.Get("/:phone/*/send/*", emptyHandler).Name("SendSms")
2437
2438 route := app.GetRoute("SendSms")
2439 url, err := route.URL(Map{
2440 "phone": "23456789",
2441 "*1": "sms",
2442 "*2": "test-msg",
2443 })
2444 require.NoError(t, err)
2445 require.Equal(t, "/23456789/sms/send/test-msg", url)
2446 })
2447
2448 t.Run("single wildcard parameter", func(t *testing.T) {
2449 t.Parallel()
2450 app := New()
2451 app.Get("/:phone/*/send", emptyHandler).Name("SendSms")
2452
2453 route := app.GetRoute("SendSms")
2454 url, err := route.URL(Map{
2455 "phone": "23456789",
2456 "*": "sms",
2457 })
2458 require.NoError(t, err)
2459 require.Equal(t, "/23456789/sms/send", url)
2460 })
2461
2462 t.Run("plus parameters prefer plus fallback", func(t *testing.T) {
2463 t.Parallel()
2464 app := New()
2465 app.Get("/user/+", emptyHandler).Name("UserGreedy")

Callers

nothing calls this directly

Calls 7

URLMethod · 0.95
GetRouteMethod · 0.80
NewFunction · 0.70
NameMethod · 0.65
GetMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected