You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.4 KiB
36 lines
1.4 KiB
import { describe, expect, test } from "bun:test";
|
|
import { normalizePublicListPage } from "./public-pagination";
|
|
|
|
describe("normalizePublicListPage", () => {
|
|
test("returns 1 for non-finite or invalid input", () => {
|
|
expect(normalizePublicListPage(undefined)).toBe(1);
|
|
expect(normalizePublicListPage(null)).toBe(1);
|
|
expect(normalizePublicListPage("")).toBe(1);
|
|
expect(normalizePublicListPage("abc")).toBe(1);
|
|
expect(normalizePublicListPage(NaN)).toBe(1);
|
|
expect(normalizePublicListPage(Infinity)).toBe(1);
|
|
expect(normalizePublicListPage(-Infinity)).toBe(1);
|
|
expect(normalizePublicListPage({})).toBe(1);
|
|
});
|
|
|
|
test("returns 1 for values less than 1", () => {
|
|
expect(normalizePublicListPage(0)).toBe(1);
|
|
expect(normalizePublicListPage(-1)).toBe(1);
|
|
expect(normalizePublicListPage(-3.5)).toBe(1);
|
|
expect(normalizePublicListPage("0")).toBe(1);
|
|
expect(normalizePublicListPage("-1")).toBe(1);
|
|
});
|
|
|
|
test("returns positive integers unchanged (or parsed)", () => {
|
|
expect(normalizePublicListPage(1)).toBe(1);
|
|
expect(normalizePublicListPage(42)).toBe(42);
|
|
expect(normalizePublicListPage("5")).toBe(5);
|
|
expect(normalizePublicListPage("10")).toBe(10);
|
|
});
|
|
|
|
test("floors positive floats", () => {
|
|
expect(normalizePublicListPage(2.7)).toBe(2);
|
|
expect(normalizePublicListPage(3.99)).toBe(3);
|
|
expect(normalizePublicListPage(1.0001)).toBe(1);
|
|
});
|
|
});
|
|
|