fix(logos): unerwartete Fehler beim Vorbereiten eines Logos in die Konsole

Schlussreview F6. prepareLogo machte aus jedem Fehler außer seinen eigenen („leer“, „zu klein“ …) die Meldung „Das Logo konnte nicht
gelesen werden.“ und verlor dabei den Anlass (Fehler des Browsers beim Zeichnen, Dekodierfehler): bei einer Rückmeldung eines Nutzers
war nichts mehr nachzuvollziehen.

- Vor dem Umwandeln steht jetzt genau eine console.warn mit dem Originalfehler. Der Text für den Nutzer bleibt unverändert (in beiden
  Sprachen). Fehler mit eigener Meldung (LogoError: Typ, Größe, zu viele Pixel, leer, zu klein, kein Canvas, kein PNG) sind erwartet und
  warnen nicht.
- Tests: Browserfehler beim Zeichnen (Raster und SVG), Dekodierfehler, Englisch, keine Warnung bei den erwarteten Fehlern und bei
  Erfolg. Die Tests der Gruppe „Bild und Canvas gestellt“ ersetzen console.warn durch eine Attrappe, damit die Ausgabe sauber bleibt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-05 01:20:28 +00:00
1 parent df1cf29d42
commit 4232afdf35
2 files changed
+78 -4

No files matched your search

+5 -1
View File
@@ -268,6 +268,10 @@ export async function prepareLogo(file: File): Promise<PreparedLogo> {
hasTransparency: hasTransparency(out.ctx.getImageData(0, 0, size.w, size.h).data),
};
} catch (err) {
throw err instanceof LogoError ? err : new LogoError(t(LOGO_READ_MESSAGE));
if (err instanceof LogoError) throw err;
// Alles andere (Bild nicht ladbar, Fehler des Browsers beim Zeichnen …) heißt für den Nutzer „nicht lesbar“; für die Fehlersuche bleibt
// der eigentliche Anlass in der Konsole.
console.warn('Logo konnte nicht vorbereitet werden', err);
throw new LogoError(t(LOGO_READ_MESSAGE));
}
}