Release v1.4.35 with 413 handling for both dcrypt endpoints
- Handle 413 from paste endpoint (not just upload) - Show clear German error "DLC-Datei zu groß für dcrypt.it" when both endpoints reject the file due to size - Add tests for dual-413 and upload-413+paste-500 scenarios Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
778124312c
commit
48c89713ba
+25
-1
@@ -139,7 +139,31 @@ describe("container", () => {
|
||||
expect(fetchSpy).toHaveBeenCalledTimes(3);
|
||||
});
|
||||
|
||||
it("throws when both dcrypt endpoints fail", async () => {
|
||||
it("throws when both dcrypt endpoints return 413", async () => {
|
||||
const dir = fs.mkdtempSync(path.join(os.tmpdir(), "rd-dlc-"));
|
||||
tempDirs.push(dir);
|
||||
const filePath = path.join(dir, "huge.dlc");
|
||||
fs.writeFileSync(filePath, Buffer.alloc(100, 1).toString("base64"));
|
||||
|
||||
const fetchSpy = vi.fn(async (url: string | URL | Request) => {
|
||||
const urlStr = String(url);
|
||||
if (urlStr.includes("service.jdownloader.org")) {
|
||||
return new Response("", { status: 404 });
|
||||
}
|
||||
if (urlStr.includes("dcrypt.it/decrypt/upload")) {
|
||||
return new Response("Request Entity Too Large", { status: 413 });
|
||||
}
|
||||
if (urlStr.includes("dcrypt.it/decrypt/paste")) {
|
||||
return new Response("Request Entity Too Large", { status: 413 });
|
||||
}
|
||||
return new Response("", { status: 500 });
|
||||
});
|
||||
globalThis.fetch = fetchSpy as unknown as typeof fetch;
|
||||
|
||||
await expect(importDlcContainers([filePath])).rejects.toThrow(/zu groß für dcrypt/i);
|
||||
});
|
||||
|
||||
it("throws when upload returns 413 and paste returns 500", async () => {
|
||||
const dir = fs.mkdtempSync(path.join(os.tmpdir(), "rd-dlc-"));
|
||||
tempDirs.push(dir);
|
||||
const filePath = path.join(dir, "doomed.dlc");
|
||||
|
||||
Reference in New Issue
Block a user