veza/apps/web/STORYBOOK_AUDIT_REPORT.md

1.9 KiB

Storybook Audit Report

Summary

  • Total Stories: 963
  • Failed Stories: 310 (~32% failure rate)
  • Total Errors: 1,040 (Network + Console)

Failure Categories

1. Unmocked Network Requests (Critical)

Count: 463 Network Failures Diagnosis: Stories are attempting to hit real production endpoints (api.veza.com) instead of using mocks.

  • ERR_NAME_NOT_RESOLVED: https://api.veza.com/api/v1/api/v1/logs/frontend
  • ERR_ABORTED: https://api.veza.com/api/v1/auth/me
  • ERR_ABORTED: https://picsum.photos/200 (External images)

Impact: Components depending on data stay in "Loading" state indefinitely or crash when data is missing.

2. Missing Context Providers

Count: ~15-20 identified instances (estimated from sample) Diagnosis: Components accessing global state that isn't provided in the story decorator.

  • Error: useAuth must be used within AuthProvider
  • TypeError: Cannot read properties of undefined (reading 'name') (Likely missing user object from auth context)

3. Runtime Crashes

  • TypeError: Cannot read properties of undefined: Cascading failures from missing API data.

Remediation Plan

Step 1: Configure Mock Service Worker (MSW)

  • Initialize MSW in Storybook.
  • Create handlers.ts to mock core endpoints:
    • /auth/me (User profile)
    • /api/v1/logs/frontend (Prevent logging noise)
    • Domain specific endpoints for failing stories.

Step 2: Global Decorators

  • Wrap all stories in preview.tsx with:
    • AuthProvider (Mocked)
    • QueryClientProvider (React Query)
    • MemoryRouter (already likely present but need verification)

Step 3: Fix Specific Issues

  • Fix double-path URL bug (/api/v1/api/v1/...)
  • Mock external image services or provide local fallbacks.

Priority

High. 30% of the component library is broken in documentation, making it unreliable for development.