-
Notifications
You must be signed in to change notification settings - Fork 0
TEST REPORT FRONTEND pages
| Issue | S5-01 |
| Datum | 3. 6. 2026 |
| Framework | Vitest + React Testing Library |
| Avtor | Tilen Brunec |
| Komponenta | Vloga |
|---|---|
LoginPage |
Stran za prijavo z Google OAuth |
DashboardPage |
Vstopna stran — razvejitvena točka med vlogama |
RegisterPage |
Registracijska forma za nove uporabnike |
| Testna datoteka | Skupaj | ✅ Pravilen | ❌ Napačen | |
|---|---|---|---|---|
LoginPage.test.tsx |
5 | 4 | 1 | 0 |
DashboardPage.test.tsx |
3 | 2 | 1 | 0 |
RegisterPage.test.tsx |
8 | 3 | 1 | 4 |
| Skupaj | 16 | 9 | 3 | 4 |
| Oznaka | Pomen |
|---|---|
| ✅ Pravilen primer | Normalen potek — vse deluje kot pričakovano |
| Mejni pogoji — stanje nalaganja, prijavljena seja | |
| ❌ Napačen primer | Napačni vhodi ali napake API klica |
Testi pokrivajo upodobitev prijavne strani in interakcijo z Google OAuth gumbom. Kontekst
useAuthje nadomešten zmockobjektom, ki simulira različna stanja seje.
Cilj: Preveriti da je OAuth gumb prisoten pri nalaganju strani.
| Vhod | Prijavna stran brez aktivne seje (session: null) |
| Pričakovan rezultat | Gumb z besedilom "Continue with Google" je v DOM-u |
Cilj: Preveriti da je naslov dobrodošlice prikazan.
| Vhod | Prijavna stran brez aktivne seje |
| Pričakovan rezultat | Naslov "Welcome back!" je v DOM-u |
Cilj: Preveriti da informacijska sekcija za nove uporabnike je prikazana.
| Vhod | Prijavna stran brez aktivne seje |
| Pričakovan rezultat | Element z besedilom "NEW HERE?" je v DOM-u |
Cilj: Preveriti da klik na OAuth gumb sproži funkcijo za prijavo.
| Vhod | Klik na gumb "Continue with Google" |
| Pričakovan rezultat |
signInWithGoogle je bila poklicana enkrat |
Cilj: Preveriti da prijavni gumb ni prikazan, ko je uporabnik že prijavljen.
| Vhod | Aktivna seja (session: { access_token: "..." }) |
| Pričakovan rezultat | Gumb "Continue with Google" ni v DOM-u |
Testi pokrivajo razvejitveno logiko nadzorne plošče — prikaz nalagalnika med preverjanjem profila ter upodobitev pravilne vsebine glede na vlogo. Komponente
StudentDashboard,ProfessorDashboard,AppHeaderinSidebarso nadomeščene zmockrazličicami.
Cilj: Preveriti da se nalagalnik prikaže, dokler profil še ni naložen.
| Vhod |
profil: null v useAuth kontekstu |
| Pričakovan rezultat | Element z razredom .page-loader je v DOM-u |
Cilj: Preveriti da se vsebina za učenca upodobi ob vlogi
ucenec.
| Vhod | profil.vloga = "ucenec" |
| Pričakovan rezultat |
StudentDashboard mock je upodobljen |
Cilj: Preveriti da se vsebina za učitelja upodobi ob vlogi
ucitelj.
| Vhod | profil.vloga = "ucitelj" |
| Pričakovan rezultat |
ProfessorDashboard mock je upodobljen |
Testi pokrivajo celoten tok registracije — preverjanje statusa novega uporabnika, prikaz forme, validacijo vnosa in oddajo zahtevka.
useNavigateiz react-router-dom je nadomeščen zmockfunkcijo za preverjanje preusmeritev. Klicsupabase.auth.getSession()je prav tako nadomešten.
Cilj: Preveriti da se nalagalnik prikaže med čakanjem na odgovor
/api/me/status.
| Vhod | Zahtevek /api/me/status je v stanju čakanja (nikoli ne odgovori) |
| Pričakovan rezultat | Element z razredom .page-loader je v DOM-u |
Cilj: Preveriti da se registracijska forma prikaže po uspešnem preverjanju statusa.
| Vhod |
/api/me/status vrne { isNewUser: true }
|
| Pričakovan rezultat | Vidno je vnosno polje s primerkom "e.g. johndoe" ter gumba STUDENT in TEACHER
|
Cilj: Preveriti da validacija zavrne prazno uporabniško ime.
| Vhod | Oddaja forme z praznim poljem za ime |
| Pričakovan rezultat | Sporočilo "Please enter a username!" je v DOM-u |
Cilj: Preveriti da validacija zavrne ime, krajše od 3 znakov.
| Vhod | Vnos "ab" v polje za ime, oddaja forme |
| Pričakovan rezultat | Sporočilo "Username must be at least 3 characters!" je v DOM-u |
Cilj: Preveriti da validacija zavrne ime s prepovedanimi znaki (presledki, posebni znaki).
| Vhod | Vnos "bad name!" v polje za ime, oddaja forme |
| Pričakovan rezultat | Sporočilo z besedilom "only contain letters" je v DOM-u |
Cilj: Preveriti da izbira vloge
TEACHERposodobi besedilo potrditvenega gumba.
| Vhod | Klik na možnost TEACHER
|
| Pričakovan rezultat | Gumb z besedilom "Start Teaching" je prisoten |
Cilj: Preveriti da se po uspešni registraciji učenca izvede preusmeritev na vprašalnik.
| Vhod | Veljavno ime, /api/me/complete-registration vrne { vloga: "ucenec" }
|
| Pričakovan rezultat |
navigate("/questionnaire") je bila poklicana |
Cilj: Preveriti da se sporočilo iz napake API klica prikaže uporabniku.
| Vhod |
/api/me/complete-registration vrne { message: "Username already taken." } s statusom 409 |
| Pričakovan rezultat | Sporočilo "Username already taken." je v DOM-u |