fix(test): CI-Runner-Node hatte Blob ohne .stream() - kein echtes Response mehr
CI / backend-tests (push) Failing after 2m11s
CI / frontend-build (push) Successful in 29s

new Response(new Blob(...)) schlug auf dem Gitea-Runner mit "object.stream
is not a function" fehl (Node-Version dort mit unvollständiger Blob-Impl.),
lokal (Node 22) unauffällig. ladeDokumentAnsehen braucht nur response.ok
und response.blob() - Mock jetzt als einfaches Objekt statt echtem Response.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-08 10:00:08 +02:00
co-authored by Claude Sonnet 5
parent 7a3fd7acda
commit bbc8ead2e5
+14 -6
View File
@@ -46,9 +46,13 @@ describe("ladeDokumentAnsehen (Popup-Blocker-Fix)", () => {
it("öffnet das Tab-Fenster SOFORT synchron, bevor fetch abgeschlossen ist", async () => {
const tabStub = { location: { href: "" }, close: vi.fn() };
const openSpy = vi.spyOn(window, "open").mockReturnValue(tabStub as unknown as Window);
(fetch as ReturnType<typeof vi.fn>).mockResolvedValue(
new Response(new Blob(["pdf-inhalt"]), { status: 200 })
);
// Kein echtes Response/Blob-Objekt - manche Node-Versionen (CI-Runner)
// haben eine Blob-Implementierung ohne .stream(), die new Response(blob)
// dann intern braucht. ladeDokumentAnsehen nutzt nur .ok und .blob().
(fetch as ReturnType<typeof vi.fn>).mockResolvedValue({
ok: true,
blob: () => Promise.resolve(new Blob(["pdf-inhalt"])),
});
vi.stubGlobal("URL", { ...URL, createObjectURL: vi.fn().mockReturnValue("blob:fake-url") });
const promise = ladeDokumentAnsehen("abc-123");
@@ -63,9 +67,13 @@ describe("ladeDokumentAnsehen (Popup-Blocker-Fix)", () => {
it("fällt bei blockiertem Popup auf denselben Tab zurück statt zu crashen", async () => {
vi.spyOn(window, "open").mockReturnValue(null);
(fetch as ReturnType<typeof vi.fn>).mockResolvedValue(
new Response(new Blob(["pdf-inhalt"]), { status: 200 })
);
// Kein echtes Response/Blob-Objekt - manche Node-Versionen (CI-Runner)
// haben eine Blob-Implementierung ohne .stream(), die new Response(blob)
// dann intern braucht. ladeDokumentAnsehen nutzt nur .ok und .blob().
(fetch as ReturnType<typeof vi.fn>).mockResolvedValue({
ok: true,
blob: () => Promise.resolve(new Blob(["pdf-inhalt"])),
});
vi.stubGlobal("URL", { ...URL, createObjectURL: vi.fn().mockReturnValue("blob:fake-url") });
const ortsStub = { href: "" };
vi.stubGlobal("location", ortsStub);