34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
|
|
import { getAdvancedBookmarkColumns, getBookmarkHostname, getCompactBookmarkLayout } from "./component";
|
|
|
|
describe("bookmark display helpers", () => {
|
|
test("uses bounded advanced columns", () => {
|
|
expect(getAdvancedBookmarkColumns(900, 8)).toBe(3);
|
|
expect(getAdvancedBookmarkColumns(120, 8)).toBe(1);
|
|
expect(getAdvancedBookmarkColumns(900, 0)).toBe(1);
|
|
});
|
|
|
|
test("uses container geometry to keep compact cards legible", () => {
|
|
expect(getCompactBookmarkLayout(420, 220, 4, "gridHorizontal")).toMatchObject({
|
|
columns: 2,
|
|
hideHostname: false,
|
|
hideTitle: false,
|
|
minimumItemSize: 48,
|
|
});
|
|
|
|
expect(getCompactBookmarkLayout(180, 80, 4, "row")).toMatchObject({
|
|
columns: 4,
|
|
hideHostname: true,
|
|
hideTitle: true,
|
|
minimumItemSize: 96,
|
|
});
|
|
});
|
|
|
|
test("does not crash on malformed bookmark URLs", () => {
|
|
expect(getBookmarkHostname("https://homarr.dev/docs")).toBe("homarr.dev");
|
|
expect(getBookmarkHostname("not a URL")).toBeUndefined();
|
|
expect(getBookmarkHostname(null)).toBeUndefined();
|
|
});
|
|
});
|