Files
Multi-Debrid-Downloader/tests/package-order.test.ts
Sucukdeluxe 2861fd95f7 fix(downloads): stabilize queue and disk recovery
Keep package rows in their existing visible order across runtime state changes and remove obsolete automatic progress grouping.

Require an active usable provider before starting or resuming downloads, recover temporary disk-write blocks without consuming normal retries, and surface disk waits and extraction failures at package level.

Add focused regression coverage and prepare the v2.0.24 release metadata and changelog.
2026-08-11 20:08:06 +02:00

42 lines
1.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { PackageEntry } from "../src/shared/types";
import { preservePackageOrderForDisplay } from "../src/renderer/package-order";
function createPackage(id: string, itemIds: string[], downloadStartedAt = 0): PackageEntry {
const now = Date.now();
return {
id,
name: id,
outputDir: "",
extractDir: "",
status: "queued",
itemIds,
cancelled: false,
enabled: true,
priority: "normal",
createdAt: now,
updatedAt: now,
downloadStartedAt
};
}
describe("preservePackageOrderForDisplay", () => {
it("keeps the exact queue order", () => {
const packages = [
createPackage("pkg-a", ["a1", "a2"]),
createPackage("pkg-c", ["c1"]),
createPackage("pkg-b", ["b1", "b2"])
];
expect(preservePackageOrderForDisplay(packages).map((pkg) => pkg.id)).toEqual(["pkg-a", "pkg-c", "pkg-b"]);
});
it("keeps the visible queue order stable across start and completion metadata", () => {
const packages = [
createPackage("pkg-first", ["first-item"], 100),
createPackage("pkg-second", ["second-item"], 200),
createPackage("pkg-third", ["third-item"], 300)
];
expect(preservePackageOrderForDisplay(packages).map((pkg) => pkg.id)).toEqual(["pkg-first", "pkg-second", "pkg-third"]);
});
});