Fix resume completion and rar fallback handling
This commit is contained in:
@@ -15,6 +15,7 @@ import {
|
||||
orderExtractorCandidatesForArchive,
|
||||
resolveExtractorBackendModeForArchive,
|
||||
resolveExtractorBackendMode,
|
||||
shouldFallbackLegacyRarToJvm,
|
||||
} from "../src/main/extractor";
|
||||
|
||||
const tempDirs: string[] = [];
|
||||
@@ -1183,6 +1184,25 @@ describe("extractor", () => {
|
||||
expect(resolveExtractorBackendModeForArchive("C:\\Downloads\\episode.r00", undefined, false, "win32")).toBe("legacy");
|
||||
});
|
||||
|
||||
it("falls back from legacy rar to jvm after partial-progress failure in auto mode on Windows", () => {
|
||||
expect(
|
||||
shouldFallbackLegacyRarToJvm(
|
||||
"C:\\Downloads\\episode.part01.rar",
|
||||
"auto",
|
||||
"legacy",
|
||||
"Error: Extracting from C:\\Downloads\\episode.part01.rar",
|
||||
38,
|
||||
"win32"
|
||||
)
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it("skips legacy rar to jvm fallback for explicit legacy mode and non-rar cases", () => {
|
||||
expect(shouldFallbackLegacyRarToJvm("C:\\Downloads\\episode.part01.rar", "legacy", "legacy", "checksum error", 38, "win32")).toBe(false);
|
||||
expect(shouldFallbackLegacyRarToJvm("C:\\Downloads\\episode.zip", "auto", "legacy", "unknown failure", 38, "win32")).toBe(false);
|
||||
expect(shouldFallbackLegacyRarToJvm("C:\\Downloads\\episode.part01.rar", "auto", "legacy", "timeout", 38, "win32")).toBe(false);
|
||||
});
|
||||
|
||||
it("keeps auto for non-rar archives and respects explicit overrides", () => {
|
||||
expect(resolveExtractorBackendModeForArchive("C:\\Downloads\\episode.zip", undefined, false, "win32")).toBe("auto");
|
||||
expect(resolveExtractorBackendModeForArchive("C:\\Downloads\\episode.part01.rar", "jvm", false, "win32")).toBe("jvm");
|
||||
|
||||
Reference in New Issue
Block a user