Workers P2: Fehlergrenze um die Routen, damit ein fehlender lazy-Chunk nicht die ganze Oberfläche leert

Ein alter Tab nach einem Deploy fordert den Seiten-Chunk mit altem Hash an, nginx liefert die index.html, der Import schlägt fehl und React räumte ohne Boundary den gesamten Baum ab. RouteErrorBoundary hält Menü und Rahmen, zeigt den Hinweis mit Knopf „Seite neu laden“ und räumt den Fehler beim Pfadwechsel weg.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-18 04:34:35 +00:00
1 parent 7ddd60e59b
commit 0b78379b9b
4 files changed
+119 -1

No files matched your search

+9
View File
@@ -17,3 +17,12 @@ test('WorkersPage: Titel Hustler (H1 und Tab-Titel), Reiter hochhaus (kein Platz
assert.match(s, /id: 'hochhaus'/); assert.doesNotMatch(s, /id: 'freigabe'/); assert.match(s, /WORKERS_TABS\.length > 1/)
assert.match(s, /const api = workersApi/); assert.match(s, /pickTab\(/); assert.match(s, /isAdmin=\{isAdmin\}/)
})
test('App: RouteErrorBoundary um die Routen im Inhaltsbereich (fehlender lazy-Chunk in altem Tab lässt nicht die ganze Oberfläche verschwinden), Pfad als resetKey', () => {
const s = readFileSync(new URL('../../src/App.jsx', import.meta.url), 'utf8')
assert.match(s, /import RouteErrorBoundary from '\.\/components\/RouteErrorBoundary'/)
assert.match(s, /<main id="inhalt"><RouteErrorBoundary resetKey=\{location\.pathname\}><AppRoutes \/><\/RouteErrorBoundary><\/main>/)
// das Menü (Sidebar) steht außerhalb der Boundary und bleibt bei einem Fehler benutzbar
assert.ok(s.indexOf('<Sidebar') < s.indexOf('<RouteErrorBoundary'))
const b = readFileSync(new URL('../../src/components/RouteErrorBoundary.jsx', import.meta.url), 'utf8')
assert.match(b, /window\.location\.reload\(\)/); assert.match(b, /Seite neu laden/); assert.match(b, /getDerivedStateFromError/)
})