Some checks failed
Tests / unit-tests (push) Failing after 22s
Uklonjen multi-tab sistem — sada jedna PTY sesija po stranici. Dodat idle detection: status "Završeno", flash animacija, browser notifikacija i treptanje naslova kad je tab u pozadini. CSS premešten iz inline stilova u style.css. Dodat /api/projects endpoint i testovi za PTY sesije. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
71 lines
2.8 KiB
Markdown
71 lines
2.8 KiB
Markdown
# TESTING.md — Claude Web Chat
|
||
|
||
## Login
|
||
- [ ] Otvaranje / → redirect na /login
|
||
- [ ] Login sa ispravnim kredencijalima → redirect na /projects
|
||
- [ ] Login sa pogrešnim kredencijalima → error poruka
|
||
- [ ] Već ulogovan → /login redirect na /projects
|
||
- [ ] Logout → sesija obrisana, redirect na /login
|
||
- [ ] Pristup /projects bez logina → redirect na /login
|
||
|
||
## Projekti
|
||
- [ ] Lista projekata se prikazuje posle logina
|
||
- [ ] Projekat sa README.md prikazuje opis
|
||
- [ ] Projekat bez README.md prikazuje "Bez opisa"
|
||
- [ ] Klik na projekat → otvara chat
|
||
|
||
## Kreiranje projekta
|
||
- [ ] Klik na "Novi projekat" → pojavi se modal sa formom
|
||
- [ ] Unos validnog imena → projekat kreiran, vidljiv u listi
|
||
- [ ] Unos duplog imena → error poruka "već postoji"
|
||
- [ ] Unos praznog imena → browser validacija (required)
|
||
- [ ] Unos specijalnih karaktera → error poruka
|
||
- [ ] Klik van modala → modal se zatvara
|
||
- [ ] Klik na "Otkaži" → modal se zatvara
|
||
|
||
## Chat
|
||
- [ ] Chat stranica se otvori sa WebSocket konekcijom
|
||
- [ ] Pošalji poruku → prikazuje se user poruka
|
||
- [ ] Claude odgovara → streaming tekst u realnom vremenu
|
||
- [ ] Tool use → prikazuje se kao posebna poruka
|
||
- [ ] Typing indicator → prikazuje se dok Claude radi
|
||
- [ ] Enter → šalje poruku, Shift+Enter → novi red
|
||
- [ ] Input se čisti posle slanja
|
||
|
||
## Promena lozinke
|
||
- [ ] Pristup /change-password bez logina → redirect na /login
|
||
- [ ] Prikaz forme sa 3 polja (trenutna, nova, potvrda)
|
||
- [ ] Pogrešna trenutna lozinka → error poruka
|
||
- [ ] Nova lozinka kraća od 6 karaktera → error poruka
|
||
- [ ] Nova lozinka i potvrda se ne poklapaju → error poruka
|
||
- [ ] Uspešna promena → success poruka
|
||
- [ ] Login sa novom lozinkom → uspešan
|
||
- [ ] Login sa starom lozinkom → neuspešan
|
||
- [ ] Link "Promeni lozinku" vidljiv na /projects stranici
|
||
- [ ] Link "Nazad na projekte" vraća na /projects
|
||
|
||
## Tabovi (više konzola)
|
||
- [ ] Otvaranje /chat/arv → jedan tab "arv" prikazan
|
||
- [ ] Klik na + → dropdown sa listom projekata
|
||
- [ ] Izbor projekta iz dropdown-a → novi tab otvoren
|
||
- [ ] Izbor istog projekta → novi tab sa zasebnom sesijom
|
||
- [ ] Klik na tab → prebacivanje terminala, fokus
|
||
- [ ] Klik na × → tab zatvoren, WS prekinut
|
||
- [ ] Poslednji tab se ne može zatvoriti (nema × dugme)
|
||
- [ ] Refresh stranice → prvi tab se ponovo konektuje sa replay-om
|
||
- [ ] Svaki tab ima nezavisan terminal (kucanje u jednom ne utiče na drugi)
|
||
- [ ] Promena teme → primenjuje se na sve tabove
|
||
|
||
## Sesija persistence
|
||
- [ ] Zatvori tab → otvori ponovo → sesija živa, poruke replayed
|
||
- [ ] Idle sesija se čisti posle 30 minuta
|
||
|
||
## File browser
|
||
- [ ] Sidebar prikazuje .md fajlove
|
||
- [ ] Klik na fajl → otvara viewer sa rendered markdown-om
|
||
- [ ] Escape zatvara viewer
|
||
- [ ] Path traversal pokušaj → blokiran
|
||
|
||
## Unit testovi
|
||
- [ ] `go test ./... -v -count=1` — svi prolaze
|