-
Notifications
You must be signed in to change notification settings - Fork 0
TEST REPORT FRONTEND components
| Issue | S5-01 |
| Datum | 3. 6. 2026 |
| Framework | Vitest + React Testing Library |
| Avtor | Tilen Brunec |
| Komponenta | Vloga |
|---|---|
ComicBtn |
Primitivni gumb — osnova za vse interaktivne elemente v aplikaciji |
Bar |
Naprednica — vizualni prikaz deleža z nastavljivo barvo in višino |
StatCard |
Statistična kartica — prikaz ene metrike z oznako, vrednostjo in podnapisom |
WakeBackend |
Ovitek za čakanje na zaledni sistem — anketa zdravstvenega preverjanja ob zagonu |
| Testna datoteka | Skupaj | ✅ Pravilen | ❌ Napačen | |
|---|---|---|---|---|
ComicBtn.test.tsx |
8 | 6 | 1 | 1 |
Bar.test.tsx |
8 | 6 | 2 | 0 |
StatCard.test.tsx |
9 | 9 | 0 | 0 |
WakeBackend.test.tsx |
6 | 4 | 1 | 1 |
| Skupaj | 31 | 25 | 4 | 2 |
| Oznaka | Pomen |
|---|---|
| ✅ Pravilen primer | Normalen potek — vse deluje kot pričakovano |
| Mejni pogoji — vrednost 0, prekoračitev, stanje čakanja | |
| ❌ Napačen primer | Onemogočeni elementi, napaka zunanjega sistema |
Testi pokrivajo osnovno vedenje gumba
ComicBtn— upodobitev vsebine, klikanje, onemogočeno stanje in stilske različice (sm,dark,color). Testi so čisti komponentni testi brez MSW ali kontekstnih odvisnosti.
Cilj: Preveriti da gumb upodobi vsebino, ki mu je bila posredovana.
| Vhod | <ComicBtn>Click me</ComicBtn> |
| Pričakovan rezultat | Gumb z besedilom "Click me" je v DOM-u |
Cilj: Preveriti da klik na gumb sproži podano funkcijo.
| Vhod |
onClick mock funkcija, klik na gumb |
| Pričakovan rezultat |
onClick je bila poklicana enkrat |
Cilj: Preveriti da onemogočen gumb ne sproži klicnega dogodka.
| Vhod |
<ComicBtn disabled onClick={mock}>, klik na gumb |
| Pričakovan rezultat |
onClick ni bila poklicana |
Cilj: Preveriti da je HTML atribut
disabledprisoten na gumbu.
| Vhod | <ComicBtn disabled>Save</ComicBtn> |
| Pričakovan rezultat | Gumb ima atribut disabled
|
Cilj: Preveriti da različica
smnastavi manjšo velikost pisave kot privzeta.
| Vhod | Navadni gumb in gumb z sm prop vzporedno v DOM-u |
| Pričakovan rezultat |
style.fontSize gumba sm se razlikuje od normalnega |
Cilj: Preveriti da različica
darknastavi belo barvo besedila.
| Vhod | <ComicBtn dark>Dark</ComicBtn> |
| Pričakovan rezultat |
style.color gumba je rgb(255, 255, 255)
|
Cilj: Preveriti da prop
colornastavi ozadje gumba.
| Vhod | <ComicBtn color="rgb(200, 100, 50)"> |
| Pričakovan rezultat |
style.background gumba je rgb(200, 100, 50)
|
Cilj: Preveriti da gumb dobi HTML atribut
type="submit"za uporabo v formah.
| Vhod | <ComicBtn type="submit">Submit</ComicBtn> |
| Pričakovan rezultat | Gumb ima atribut type="submit"
|
Testi pokrivajo izračun in prikaz naprednice
Bar— delež polnjenja, barvo in višino. Notranja struktura DOM-a je preverjena neposredno prek stilov na elementih. Testi so čisti komponentni testi brez MSW.
Cilj: Preveriti da komponenta upodobi notranji element za polnjenje.
| Vhod | <Bar value={50} /> |
| Pričakovan rezultat | Notranji div za polnjenje obstaja v DOM-u |
Cilj: Preveriti da je širina polnjenja izračunana kot delež privzetega maksimuma (100).
| Vhod | <Bar value={75} /> |
| Pričakovan rezultat |
style.width notranjega elementa je 75%
|
Cilj: Preveriti da je širina izračunana glede na podani maksimum.
| Vhod | <Bar value={3} max={4} /> |
| Pričakovan rezultat |
style.width je 75% (3/4 = 75%) |
Cilj: Preveriti da vrednost, ki presega maksimum, ne povzroči prepolnjenja.
| Vhod | <Bar value={150} max={100} /> |
| Pričakovan rezultat |
style.width je 100%
|
Cilj: Preveriti prikaz naprednice pri vrednosti nič.
| Vhod | <Bar value={0} /> |
| Pričakovan rezultat |
style.width notranjega elementa je 0%
|
Cilj: Preveriti da prop
colornastavi ozadje notranjega elementa.
| Vhod | <Bar value={50} color={C.green} /> |
| Pričakovan rezultat |
style.background notranjega elementa je rgb(133, 184, 143)
|
Cilj: Preveriti da numerična višina doda enoto
px.
| Vhod | <Bar value={50} height={12} /> |
| Pričakovan rezultat |
style.height zunanjega elementa je 12px
|
Cilj: Preveriti da se niz za višino neposredno prenese v stil.
| Vhod | <Bar value={50} height="1.5rem" /> |
| Pričakovan rezultat |
style.height zunanjega elementa je 1.5rem
|
Testi pokrivajo upodobitev statistične kartice — prikaz besedila, prisotnost CSS razredov in barvo ozadja. Testi so čisti komponentni testi brez MSW.
Cilj: Preveriti da je oznaka kartice prikazana.
| Vhod | <StatCard label="AVG SCORE" value="82%" sub="across all quizzes" /> |
| Pričakovan rezultat | Besedilo "AVG SCORE" je v DOM-u |
Cilj: Preveriti da je vrednost kartice prikazana.
| Vhod | <StatCard label="AVG SCORE" value="82%" sub="..." /> |
| Pričakovan rezultat | Besedilo "82%" je v DOM-u |
Cilj: Preveriti da je podbesedilo kartice prikazano.
| Vhod | <StatCard label="..." value="..." sub="across all quizzes" /> |
| Pričakovan rezultat | Besedilo "across all quizzes" je v DOM-u |
Cilj: Preveriti da prop
valuesprejme številčni tip.
| Vhod | <StatCard label="TOTAL" value={42} sub="quizzes" /> |
| Pričakovan rezultat | Besedilo "42" je v DOM-u |
Cilj: Preveriti da ima element z oznako prisoten CSS razred
stat-card-label.
| Vhod | <StatCard label="LABEL" value="V" sub="S" /> |
| Pričakovan rezultat | Element z razredom .stat-card-label vsebuje besedilo "LABEL" |
Cilj: Preveriti da ima element z vrednostjo prisoten CSS razred
stat-card-value.
| Vhod | <StatCard label="L" value="VALUE" sub="S" /> |
| Pričakovan rezultat | Element z razredom .stat-card-value vsebuje besedilo "VALUE" |
Cilj: Preveriti da ima element s podbesedilom prisoten CSS razred
stat-card-sub.
| Vhod | <StatCard label="L" value="V" sub="SUB TEXT" /> |
| Pričakovan rezultat | Element z razredom .stat-card-sub vsebuje besedilo "SUB TEXT" |
Cilj: Preveriti da je privzeto ozadje kartice barva
paperiz oblikovnih žetonov.
| Vhod |
<StatCard label="L" value="V" sub="S" /> (brez bg prop) |
| Pričakovan rezultat |
style.background korenske komponente je rgb(255, 253, 249) (C.paper) |
Cilj: Preveriti da prop
bgnastavi barvo ozadja kartice.
| Vhod | <StatCard label="L" value="V" sub="S" bg={C.cyanLt} /> |
| Pričakovan rezultat |
style.background korenske komponente je rgb(219, 238, 242) (C.cyanLt) |
Testi pokrivajo ovitek
WakeBackend, ki anketa zdravstveni endpoint zalednega sistema ob zagonu aplikacije. MSW simuliraGET /healthz različnimi odgovori in stanjem čakanja za testiranje prehodov med stanji.
Cilj: Preveriti da se začetno stanje preverjanja prikaže, dokler zahtevek čaka.
| Vhod |
GET /health je v stanju čakanja (nikoli ne odgovori) |
| Pričakovan rezultat | Besedilo "CONNECTING…" je v DOM-u |
Cilj: Preveriti da se vsebina aplikacije prikaže, ko zaledni sistem odgovori z 200.
| Vhod |
GET /health vrne status 200 |
| Pričakovan rezultat | Otroška komponenta (npr. <div>App ready</div>) je v DOM-u |
Cilj: Preveriti da se ob napaki zalednega sistema prikaže sporočilo o buđenju.
| Vhod |
GET /health vrne status 503 |
| Pričakovan rezultat | Besedilo "WAKING UP…" je v DOM-u |
Cilj: Preveriti da se sporočilo maskote BIT prikaže med buđenjem.
| Vhod |
GET /health vrne 503, prehod v stanje buđenja |
| Pričakovan rezultat | Besedilo govorne oblačke (npr. "Waking up the server...") je v DOM-u |
Cilj: Preveriti da se prikaže števec preteklih sekund med buđenjem.
| Vhod | Stanje buđenja po neuspešnem zdravstvenem preverjanju |
| Pričakovan rezultat | Besedilo s priponko "s" za sekunde je v DOM-u |
Cilj: Preveriti celoten prehod stanj: preverjanje → buđenje → pripravljeno.
| Vhod |
GET /health najprej vrne 503, nato 200 pri ponovnem preverjanju |
| Pričakovan rezultat | Otroška komponenta je vidna po uspešnem ponovnem zdravstvenem preverjanju |