Files
buzz/desktop
npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 7f98dc15f3 test(onboarding): replace mirror test with E2E specs for reconnect card
The OnboardingRelayConnectionErrorCard.test.mjs unit test was a mirror
state machine — it duplicated the component's ref/effect logic in the test
file itself, meaning it would pass even if ProfileStep.tsx regressed. Thufir
flagged this as not exercising the production path.

Replace with two E2E tests in onboarding.spec.ts that drive the real
component against the real relay state seam:

- 'click shows Connected then auto-dismisses': produces the error card via
  a relay-unreachable profile save error, drives relay to disconnected,
  clicks onboarding-reconnect-relay, drives relay to connected, and asserts
  the card transitions to 'Connected' then auto-dismisses. Exercises the full
  hadActiveReconnectRef guard and markSuccess() path through real code.

- 'connected without a prior click does not show Connected': same card setup,
  drives disconnected → connected with no click, asserts the card stays in
  error state. Guards against spurious success on background recovery without
  user action.

Also adds the setRelayConnectionState helper to onboarding.spec.ts, copied
from sidebar-relay-card.spec.ts (same seam, same bidirectional guard).

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
2026-07-02 15:17:54 -04:00
..
2026-06-11 15:06:24 +00:00
2026-06-11 15:06:24 +00:00

Buzz

Desktop chat shell with:

  • Tauri + React + TypeScript + Vite
  • Tailwind CSS
  • shadcn/ui-ready shared components
  • Biome (lint/format/check)
  • Feature-driven frontend structure

Scripts

  • pnpm dev - run the web frontend
  • pnpm tauri dev - run the desktop app
  • pnpm build - typecheck and build frontend
  • pnpm typecheck - TypeScript checks
  • pnpm lint - Biome lint
  • pnpm format - Biome format (write)
  • pnpm check - Biome check

Structure

  • src/shared - reusable app-wide code (ui, lib, styles)
  • src/features - feature modules (vertical slices)
  • src/app - top-level app composition