36 lines
1.3 KiB
TypeScript
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([]);
|
|
});
|
|
});
|