# GLETRA Testing Checklist

Use this checklist after installation, upgrades, or deployment.

## Authentication & users

- [ ] Register new account
- [ ] Login / logout
- [ ] Password reset flow
- [ ] Profile update (name, avatar)
- [ ] Block / unblock user
- [ ] Report user

## Real-time chat (1:1)

- [ ] Send text message — appears instantly in other tab
- [ ] Typing indicator shows while typing
- [ ] Online status / last seen updates
- [ ] Single tick (sent) → double tick (delivered) → blue tick (seen)
- [ ] Reply to message
- [ ] Forward message
- [ ] Edit message
- [ ] Delete for me
- [ ] Delete for everyone
- [ ] Message reactions
- [ ] Star / pin message
- [ ] Chat search (in conversation)
- [ ] Global message search
- [ ] Polling fallback when Reverb stopped

## Media & attachments

- [ ] Image upload (jpg, png, webp, gif)
- [ ] Video upload (mp4, mov)
- [ ] Audio file upload
- [ ] Voice note record & playback
- [ ] Document upload (pdf, doc, zip — no app size cap)
- [ ] Location sharing
- [ ] Contact sharing
- [ ] Sticker send
- [ ] GIF search (if GIPHY key set)
- [ ] Link preview
- [ ] Poll create & vote
- [ ] Camera capture
- [ ] Media viewer / lightbox

## Voice & video calls (WebRTC)

- [ ] Outgoing audio call — ringing UI
- [ ] Incoming call popup — accept / reject
- [ ] Active call — mute, speaker, timer
- [ ] End call
- [ ] Video call — local & remote video
- [ ] Camera switch (front/rear)
- [ ] Full screen & picture-in-picture
- [ ] Missed call logged
- [ ] Call history page
- [ ] Group audio/video call — participant grid
- [ ] Host remove participant
- [ ] Network disconnect → reconnect attempt
- [ ] TURN server configured (optional — test mobile/corporate network)

## Group chat

- [ ] Create group from `/groups`
- [ ] Open group chat at `/groups/{id}`
- [ ] Send text — real-time to other members via Reverb
- [ ] Send image/document in group
- [ ] Load older messages
- [ ] Group voice/video call from chat header
- [ ] Group message via API

## Push notifications

- [ ] VAPID keys generated
- [ ] Browser permission granted
- [ ] New message push (tab in background)
- [ ] Incoming call push
- [ ] Missed call push
- [ ] Notification settings respected

## Admin panel (`/admin`)

- [ ] Dashboard stats
- [ ] User management
- [ ] Chat monitoring
- [ ] Sticker CRUD
- [ ] Call logs & active calls
- [ ] Storage usage
- [ ] Analytics dashboard

## API (Sanctum)

- [ ] Login returns token
- [ ] Chats and send message
- [ ] Initiate call via API

## Deployment

- [ ] Migrations succeed
- [ ] Reverb running
- [ ] Queue worker running
- [ ] SSL enabled
