Files
homarr/packages/widgets/src/media-transcoding/layout.spec.ts
T

36 lines
1.3 KiB
TypeScript

import { describe, expect, test } from "vitest";
import { getQueuePageSize, resolveQueuePagination } from "./component";
import { toRingProgressSections } from "./panels/statistics.panel";
describe("media transcoding layout", () => {
test("keeps compact queues bounded to the available height", () => {
expect(getQueuePageSize(140, false)).toBe(3);
expect(getQueuePageSize(500, false)).toBe(14);
expect(getQueuePageSize(2000, false)).toBe(15);
});
test("loads a bounded deeper queue in advanced mode", () => {
expect(getQueuePageSize(200, true)).toBe(25);
});
test("resets the queue when display mode or page size changes", () => {
const compact = { page: 7, pageSize: 10, isAdvanced: false };
expect(resolveQueuePagination(compact, 25, true, 8)).toEqual({ page: 1, pageSize: 25, isAdvanced: true });
expect(resolveQueuePagination(compact, 12, false, 8)).toEqual({ page: 1, pageSize: 12, isAdvanced: false });
});
test("clamps the queue page when the result count shrinks", () => {
expect(resolveQueuePagination({ page: 7, pageSize: 10, isAdvanced: false }, 10, false, 3)).toEqual({
page: 3,
pageSize: 10,
isAdvanced: false,
});
});
test("does not create NaN chart sections for empty statistics", () => {
expect(toRingProgressSections([{ name: "none", value: 0 }])).toEqual([]);
});
});