# Nimuli — User Acceptance Test (FIX 9)

Run after every deploy. All 19 items must pass before marking FIX 9 complete.

**Environment:** https://nimuli.com (or localhost)
**Precondition:** Logged in as `nexxo@nimuli.com`

---

## Layout & Navigation

- [ ] **1. Sidebar renders** — Sidebar visible on left, full width (~240px), correct nav items
- [ ] **2. Sidebar collapse** — Click collapse toggle (bottom of sidebar) → collapses to icon-only (~64px). Reload page → still collapsed (localStorage persisted).
- [ ] **3. Sidebar expand** — Click toggle again → expands. Tooltip on icon when collapsed.
- [ ] **4. Main content follows** — Content area shifts left/right smoothly (no overlap, no gap) when sidebar collapses/expands.
- [ ] **5. Theme toggle** — Click sun/moon icon in topbar → cycles dark → light → system. Theme persists after page reload.
- [ ] **6. SPA navigation** — Click 3+ nav links with `wire:navigate`. Sidebar and topbar stay mounted (no flash/reload). URL updates. Active link highlighted correctly.

---

## Modals — Create

- [ ] **7. Create Link** — Links page → "+ Create Link" button → modal opens. Type URL → slug auto-generates. Click 🔄 → new slug generated. Submit → link appears in list. Toast shown.
- [ ] **8. Create QR Code** — QR Codes page → "+ Create QR Code" → modal opens with workspace pre-filled. Submit → appears in list.
- [ ] **9. Create Bio Page** — Bio Pages page → "+ Create Bio Page" → modal opens. Submit → appears in list.
- [ ] **10. Add Domain** — Domains page → "+ Add Domain" → modal opens. (No submit needed; verify modal opens correctly.)
- [ ] **11. Invite Member** — Team page → "+ Invite Member" → modal opens. (Verify workspace context passed correctly — no crash.)
- [ ] **12. Add Webhook** — Settings → Webhooks → "+ Add Webhook" → modal opens. (Verify no `require_workspace()` crash.)

---

## Modals — Edit / Delete

- [ ] **13. Edit Link** — Links list → click edit on any link → EditLink modal opens with pre-filled data. Save → updated.
- [ ] **14. Delete Link** — Links list → click delete → DeleteLink confirm modal → confirm → link removed. Toast shown.
- [ ] **15. Edit Member Role** — Team → click role badge (non-owner) → EditMemberRole modal opens.
- [ ] **16. Remove Member** — Team → hover member row → "Remove" appears → click → RemoveMember modal.

---

## Notifications Bell

- [ ] **17. Bell renders** — Topbar shows bell icon. No hardcoded "3" badge (badge only appears when real unread notifications exist).
- [ ] **18. Bell dropdown** — Click bell → dropdown opens showing "No notifications" (or list if notifications exist). Click outside → closes.

---

## Security / Profile

- [ ] **19. Delete Account button** — Profile → Security tab → "Danger Zone" section visible with "Delete Account" button → click → DeleteAccount modal opens (verify no crash).

---

## Verify Script

Run before marking complete:

```bash
bash scripts/verify-modals.sh
# Expected: EXIT 0, all checks ✓
```

---

_Last updated: 2026-05-16_
