--- Middleware handler tests ---
(t *testing.T)
| 330 | // --- Middleware handler tests --- |
| 331 | |
| 332 | func Test_PaginateWithQueries(t *testing.T) { |
| 333 | t.Parallel() |
| 334 | app := fiber.New() |
| 335 | |
| 336 | app.Use(New(Config{ |
| 337 | DefaultSort: "id", |
| 338 | })) |
| 339 | |
| 340 | app.Get("/", func(c fiber.Ctx) error { |
| 341 | pageInfo, ok := FromContext(c) |
| 342 | if !ok { |
| 343 | return fiber.ErrBadRequest |
| 344 | } |
| 345 | |
| 346 | return c.JSON(paginateResponse{ |
| 347 | Page: pageInfo.Page, |
| 348 | Limit: pageInfo.Limit, |
| 349 | Offset: pageInfo.Offset, |
| 350 | Start: pageInfo.Start(), |
| 351 | Sort: pageInfo.Sort, |
| 352 | NextPageURL: pageInfo.NextPageURL(c.BaseURL()), |
| 353 | PreviousPageURL: pageInfo.PreviousPageURL(c.BaseURL()), |
| 354 | }) |
| 355 | }) |
| 356 | |
| 357 | resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/?page=2&limit=20", http.NoBody)) |
| 358 | require.NoError(t, err) |
| 359 | defer resp.Body.Close() //nolint:errcheck // close error not relevant in tests |
| 360 | require.Equal(t, fiber.StatusOK, resp.StatusCode) |
| 361 | |
| 362 | var body paginateResponse |
| 363 | require.NoError(t, json.NewDecoder(resp.Body).Decode(&body)) |
| 364 | |
| 365 | require.Equal(t, 2, body.Page) |
| 366 | require.Equal(t, 20, body.Limit) |
| 367 | require.Equal(t, 0, body.Offset) |
| 368 | require.Equal(t, 20, body.Start) |
| 369 | require.Equal(t, "http://example.com?limit=20&page=3", body.NextPageURL) |
| 370 | require.Equal(t, "http://example.com?limit=20&page=1", body.PreviousPageURL) |
| 371 | require.Equal(t, []SortField{{Field: "id", Order: ASC}}, body.Sort) |
| 372 | } |
| 373 | |
| 374 | func Test_PaginateWithOffset(t *testing.T) { |
| 375 | t.Parallel() |
nothing calls this directly
no test coverage detected