50 lines
2.3 KiB
TypeScript
50 lines
2.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { reorderPackageOrderByDrop, sortPackageOrderByName } from "../src/renderer/package-order";
|
|
|
|
describe("reorderPackageOrderByDrop", () => {
|
|
it("moves adjacent package down by one on drop", () => {
|
|
const next = reorderPackageOrderByDrop(["a", "b", "c"], "b", "c");
|
|
expect(next).toEqual(["a", "c", "b"]);
|
|
});
|
|
|
|
it("moves package after lower drop target", () => {
|
|
const next = reorderPackageOrderByDrop(["a", "b", "c", "d"], "a", "c");
|
|
expect(next).toEqual(["b", "c", "a", "d"]);
|
|
});
|
|
|
|
it("returns original order when ids are invalid", () => {
|
|
const order = ["a", "b", "c"];
|
|
expect(reorderPackageOrderByDrop(order, "x", "b")).toEqual(order);
|
|
expect(reorderPackageOrderByDrop(order, "a", "x")).toEqual(order);
|
|
expect(reorderPackageOrderByDrop(order, "a", "a")).toEqual(order);
|
|
});
|
|
});
|
|
|
|
describe("sortPackageOrderByName", () => {
|
|
it("sorts package IDs alphabetically ascending", () => {
|
|
const sorted = sortPackageOrderByName(
|
|
["pkg3", "pkg1", "pkg2"],
|
|
{
|
|
pkg1: { id: "pkg1", name: "Alpha", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 },
|
|
pkg2: { id: "pkg2", name: "beta", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 },
|
|
pkg3: { id: "pkg3", name: "Gamma", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 }
|
|
},
|
|
false
|
|
);
|
|
expect(sorted).toEqual(["pkg1", "pkg2", "pkg3"]);
|
|
});
|
|
|
|
it("sorts package IDs alphabetically descending", () => {
|
|
const sorted = sortPackageOrderByName(
|
|
["pkg1", "pkg2", "pkg3"],
|
|
{
|
|
pkg1: { id: "pkg1", name: "Alpha", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 },
|
|
pkg2: { id: "pkg2", name: "beta", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 },
|
|
pkg3: { id: "pkg3", name: "Gamma", outputDir: "", extractDir: "", status: "queued", itemIds: [], cancelled: false, enabled: true, createdAt: 0, updatedAt: 0 }
|
|
},
|
|
true
|
|
);
|
|
expect(sorted).toEqual(["pkg3", "pkg2", "pkg1"]);
|
|
});
|
|
});
|