54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { hasVisibleOrderChanged, mergeWithRemainder } from "./sidebar-reorder";
|
|
|
|
describe("hasVisibleOrderChanged", () => {
|
|
it("returns false when visible order is unchanged", () => {
|
|
expect(
|
|
hasVisibleOrderChanged({
|
|
currentOrder: ["a", "b", "c", "d"],
|
|
reorderedVisibleKeys: ["a", "b", "c"],
|
|
})
|
|
).toBe(false);
|
|
});
|
|
|
|
it("returns true when visible items are reordered", () => {
|
|
expect(
|
|
hasVisibleOrderChanged({
|
|
currentOrder: ["a", "b", "c", "d"],
|
|
reorderedVisibleKeys: ["b", "a", "c"],
|
|
})
|
|
).toBe(true);
|
|
});
|
|
|
|
it("returns true when a visible key is missing from current order", () => {
|
|
expect(
|
|
hasVisibleOrderChanged({
|
|
currentOrder: ["a", "b"],
|
|
reorderedVisibleKeys: ["a", "c"],
|
|
})
|
|
).toBe(true);
|
|
});
|
|
});
|
|
|
|
describe("mergeWithRemainder", () => {
|
|
it("appends non-visible stored keys after reordered visible keys", () => {
|
|
expect(
|
|
mergeWithRemainder({
|
|
currentOrder: ["a", "x", "b", "y"],
|
|
reorderedVisibleKeys: ["b", "a"],
|
|
})
|
|
).toEqual(["b", "a", "x", "y"]);
|
|
});
|
|
|
|
it("keeps unknown current keys when no visible keys are reordered", () => {
|
|
expect(
|
|
mergeWithRemainder({
|
|
currentOrder: ["stale", "hidden"],
|
|
reorderedVisibleKeys: [],
|
|
})
|
|
).toEqual(["stale", "hidden"]);
|
|
});
|
|
});
|
|
|