The Footer crash (contact.paymentMethods undefined) was one instance of a class: validateProviderData defaulted nested objects only when the whole object was falsy, so a present-but-incomplete object from the degraded black-down edge left nested arrays undefined and crashed every component that .map()s them. Close the class: - validateRateGroup: addOns/travelFees/touringPackages/onlineServices → entries[] always - ensureRateSections: each rates section → entries[] always (RatesTable:239) - ensureSectionsWithItems: etiquette/policies sections → items[] always (EtiquettePage, BookingGuide) Add providerDataValidator.integration.test.ts: feeds the realistic degraded edge payload through the validator and replays every component .map() call site, asserting none can throw. Verified green (11/11) against the real validator. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| tooling | ||
| index.html | ||
| package.json | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||