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> |
||
|---|---|---|
| .. | ||
| ad-watch | ||
| admin | ||
| adult-therapy-tours | ||
| age-verification | ||
| api | ||
| broadcast | ||
| client-intel | ||
| clients/frontend-public | ||
| cocotte-tech | ||
| cocotte-web | ||
| comm-newsletter | ||
| db-monitor | ||
| demimonde | ||
| edge-purge | ||
| event-scrapers | ||
| futa-waifu-tour | ||
| image-protection | ||
| landing | ||
| merchant/backend-api | ||
| messages | ||
| my | ||
| my-socials | ||
| platform-seed | ||
| provider-website | ||
| quinn-ai | ||
| quinn-messenger/mcp | ||
| sansonnet-web | ||
| score-refresh | ||
| sso | ||
| user-data | ||
| vip | ||
| waitlist | ||