go test -run Test_Route_URL
(t *testing.T)
| 2406 | |
| 2407 | // go test -run Test_Route_URL |
| 2408 | func 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") |