QA: Vouchery
Checklist pro testery voucherového modulu (větev feature/voucher_update). Cíl: ověřit přestavěné stránky administrace, dávkový generátor, tiskové šablony a export do PDF před merge na dev. Referenční dokumentace: Vouchery.
Co se v tomto kole změnilo
Section titled “Co se v tomto kole změnilo”Struktura stránek
Section titled “Struktura stránek”| Bylo | Je |
|---|---|
/voucher otevřel formulář na nový voucher |
/voucher otevře přehled voucherů |
| Formulář, výpis a šablony jako tři karty jedné stránky | Karty jen dvě: Přehled a Šablony |
| Nový voucher jako karta | Samostatná stránka z tlačítka Nový voucher v hlavičce |
| Dávka jako režim téhož formuláře (pole „Počet voucherů”) | Samostatná stránka Dávkový generátor z hlavičky |
/voucher/list |
Přesměruje na /voucher |
Nové a upravené chování
Section titled “Nové a upravené chování”- Dávkový generátor má dva sloupce – nastavení vlevo, vygenerované kódy vpravo.
- Editace šablony se přesunula z modálu na stránku rozvržení – název, obrázek i pozice polí na jednom místě nad živým náhledem. Modál otevíral prázdný upload, takže vypadalo, že šablona obrázek nemá.
- Sloupec Uplatněno je ikona, ne číslo. Ikona sama není klikatelná, jen ukáže stav na první pohled a v tooltipu počet. Přehled uplatnění (kvíz, tým, moderátor, čas, poznámka) otevře tlačítko Uplatnění u řádku. Dřív se uplatnění daly číst jen z moderátorského panelu.
- Změna tiskové šablony je součástí akce Upravit, ne vlastní akce u řádku. U uplatněného nebo expirovaného voucheru je pole zamčené.
- PDF jde stáhnout přímo z řádku, nejen hromadnou akcí.
- Kopírování kódu je nativní funkce tabulky, s ikonou a popiskem. Funguje i na nešifrovaném (http) spojení.
- Smazání šablony hlásí výsledek – dřív šablona zmizela beze slova.
- Validace u pole, ne hláškou nad stránkou – obsazený kód i snížení limitu pod počet uplatnění.
- Sloupce Pro a Šablona se přesunuly před Expiraci.
Příprava testovacího prostředí
Section titled “Příprava testovacího prostředí”- Admin: https://admin.beta.chytrykviz.cz
- Moderátorský panel: odkaz z detailu události
- Mailhog: http://159.89.0.170:8025/
Reset DB zajistí vývojář:
docker-compose exec fpm php artisan migrate:fresh --database=mysql --seed --env=testingPro scénáře s tiskem si připrav libovolný obrázek na šířku, ideálně poměrem stran jako skutečný voucher (například 1600 × 800 px).
SC-01 · Přehled je vstupní stránka modulu
Section titled “SC-01 · Přehled je vstupní stránka modulu”Příprava: Přihlášený uživatel s oprávněním na modul Vouchery.
- V menu klikni na Vouchery.
- Ověřit: otevře se seznam voucherů, ne formulář.
Očekávání:
| Prvek | Stav |
|---|---|
| Karty | Přehled (aktivní), Šablony |
| Tlačítka v hlavičce | Dávkový generátor, Nový voucher |
| Karta „Nový” nebo „Výpis” | Neexistuje |
- Otevři přímo adresu
/voucher/list. - Ověřit: prohlížeč skončí na
/vouchers přehledem.
SC-02 · Založení jednoho voucheru
Section titled “SC-02 · Založení jednoho voucheru”Příprava: Otevřený přehled voucherů.
- Klikni na Nový voucher.
- Ověřit: otevřela se samostatná stránka bez karet, s tlačítkem Zpět.
- Ověřit: kód je předvyplněný osmi znaky.
- Klikni na ikonu regenerace vedle kódu.
- Ověřit: kód se změnil.
- Vyplň Typ, Omezení na typ eventu, Max. počet uplatnění a Poznámku.
- Klikni na Vytvořit voucher.
Očekávání:
- Vrátíš se na přehled voucherů
- Nahoře zelená hláška o vytvoření
- Nový voucher je v seznamu, stav Volný
- Ve formuláři nebyla pole Počet voucherů ani Prefix kódu
SC-03 · Obsazený kód se hlásí u pole
Section titled “SC-03 · Obsazený kód se hlásí u pole”Příprava: Existuje voucher s kódem obsazeny.
- Otevři Nový voucher.
- Do pole Kód napiš
obsazeny. - Klikni na Vytvořit voucher.
Očekávání:
| Test | Výsledek |
|---|---|
| Chybová hláška | U pole Kód, červeně |
| Červená lišta nad stránkou | Nezobrazí se |
| Zbytek formuláře | Zůstal vyplněný |
| Přesměrování na přehled | Neproběhne |
SC-04 · Dávkový generátor
Section titled “SC-04 · Dávkový generátor”Příprava: Otevřený přehled voucherů.
- Klikni na Dávkový generátor.
- Ověřit: stránka má dva sloupce, vlevo nastavení, vpravo kódy.
- Nastav Počet voucherů na 5.
- Ověřit: vpravo se objevilo pět kódů.
- Do Prefixu kódu napiš
chk-qaa klikni mimo pole. - Ověřit: kódy se přegenerovaly do tvaru
chk-qa-xxxx-001ažchk-qa-xxxx-005. - Ověřit: pod polem s prefixem je text o tom, kolik voucherů pod prefixem existuje a od jakého čísla dávka naváže.
- Přepiš druhý kód v seznamu ručně na
moje-vlastni-cislo. - Klikni na Vygenerovat vouchery.
Očekávání:
- Zelená hláška „Bylo vytvořeno 5 voucherů.”
- Formulář se vyprázdnil a připravil další dávku
- V přehledu je pět nových voucherů
- Ručně přepsaný kód zůstal přesně
moje-vlastni-cislo, nepřečísloval se
SC-05 · Navazující číslování prefixu
Section titled “SC-05 · Navazující číslování prefixu”Příprava: Proběhlo SC-04, pod prefixem chk-qa existuje pět voucherů.
- Otevři Dávkový generátor.
- Nastav počet na 3 a prefix
chk-qa. - Ověřit: text pod prefixem hlásí, že vouchery pod prefixem už existují a dávka naváže dalším číslem.
- Klikni na Vygenerovat vouchery.
Očekávání:
- Nové kódy pokračují v číslování, nezačínají znovu od 001
- Žádné číslo se neopakuje s předchozí dávkou
SC-06 · Filtr podle prefixu
Section titled “SC-06 · Filtr podle prefixu”Příprava: Existují vouchery pod prefixy chk-qa a jiné vouchery bez prefixu.
- V přehledu otevři filtr Prefix.
- Vyber
chk-qa.
Očekávání:
- V seznamu jsou jen vouchery začínající
chk-qa- - Rozepsaný text ve filtru sám o sobě nefiltruje, filtr se uplatní až výběrem ze seznamu
SC-07 · Vytvoření tiskové šablony
Section titled “SC-07 · Vytvoření tiskové šablony”Příprava: Otevřená karta Šablony.
- Klikni na Vytvořit šablonu.
- Zadej název a nahraj obrázek.
- Ulož.
- Ověřit: rovnou se otevřel editor rozvržení.
- Ověřit: v editoru je vidět nahraný obrázek.
- Ověřit: vpravo je sekce Šablona s vyplněným názvem a s nahraným obrázkem, ne prázdný upload.
Očekávání:
- Šablona má výchozí pole s kódem voucheru
- Na kartě Šablony je v seznamu náhled obrázku, ne prázdné místo
SC-08 · Editor rozvržení
Section titled “SC-08 · Editor rozvržení”Příprava: Existující šablona, otevřený editor přes akci Upravit.
- Přetáhni pole s kódem myší jinam.
- Ověřit: pole se posunulo a text se překreslil.
- Vyber pole kliknutím a stiskni šipku doleva.
- Ověřit: pole se posunulo o desetinu procenta.
- Podrž Shift a stiskni šipku doleva.
- Ověřit: pole se posunulo o celé procento.
- Táhni za úchyt na pravém okraji pole.
- Ověřit: pole se rozšířilo a písmo se přizpůsobilo šířce.
- Přidej pole QR kód a Platnost.
- Ověřit: tlačítko pro už přidaný typ pole zešedlo.
- Změň název šablony.
- Klikni na Uložit šablonu.
Očekávání:
- Vrátíš se na knihovnu šablon
- Zelená hláška o uložení
- Změněný název je v seznamu
- Po opětovném otevření editoru sedí pozice polí tak, jak jsi je nechal
SC-09 · Výměna obrázku šablony
Section titled “SC-09 · Výměna obrázku šablony”Příprava: Šablona s rozmístěnými poli.
- Otevři editor šablony.
- V sekci Šablona nahraj jiný obrázek, ideálně s jiným rozlišením.
- Ulož.
- Otevři editor znovu.
Očekávání:
- Je vidět nový obrázek
- Pole zůstala na stejných relativních pozicích, rozvržení se nerozhodilo
- Otevři editor a beze změny obrázku změň jen název.
- Ulož a otevři znovu.
Očekávání:
- Původní obrázek zůstal, nezmizel ani se nenahradil
SC-10 · Tisk voucherů do PDF
Section titled “SC-10 · Tisk voucherů do PDF”Příprava: Existuje šablona a alespoň tři vouchery, které ji mají přiřazenou, a jeden voucher bez šablony.
- V přehledu zaškrtni vouchery se šablonou.
- Spusť hromadnou akci Exportovat do PDF.
- Ověřit: stáhne se soubor
vouchery-<datum>.pdf. - Otevři PDF.
Očekávání:
- Vouchery jsou pod sebou na A4 na výšku
- Kód, platnost a QR sedí tam, kde jsi je v editoru umístil
- QR kód po naskenování obsahuje kód voucheru
-
Zaškrtni i voucher bez šablony a export zopakuj.
-
Ověřit: hláška o tom, kolik voucherů bylo vynecháno, a v PDF ten voucher není.
-
U jednoho voucheru se šablonou použij akci Stáhnout PDF přímo v řádku.
-
Ověřit: stáhne se PDF s jediným voucherem.
-
Ověřit: u voucheru bez šablony se akce Stáhnout PDF vůbec nenabízí.
SC-11 · Prázdné pole v šabloně
Section titled “SC-11 · Prázdné pole v šabloně”Příprava: Šablona obsahuje pole Platnost. Voucher s touto šablonou nemá vyplněnou expiraci.
- Otevři formulář voucheru s touto šablonou a nevyplněnou expirací.
- Ověřit: u pole Expirace je upozornění, že šablona tiskne platnost a bez vyplnění zůstane místo prázdné.
- Voucher vytiskni do PDF.
Očekávání:
- Zobrazí se oranžové upozornění o prázdném poli
- V PDF je na místě platnosti volné místo, ne text jako
nullnebo pomlčka
SC-12 · Úprava voucheru a změna šablony
Section titled “SC-12 · Úprava voucheru a změna šablony”Příprava: Neuplatněný voucher.
-
V řádku klikni na Upravit.
-
Ověřit: v modálu je i pole Tisková šablona.
-
Ověřit: u řádku není samostatná akce na změnu šablony.
-
Změň šablonu a ulož.
-
Ověřit: ve sloupci Šablona je nová hodnota.
-
Otevři úpravu u uplatněného nebo expirovaného voucheru.
-
Ověřit: pole Tisková šablona je zamčené s vysvětlením.
SC-13 · Limit uplatnění nejde snížit pod skutečnost
Section titled “SC-13 · Limit uplatnění nejde snížit pod skutečnost”Příprava: Voucher s maximem 5 uplatnění, z toho 3 už uplatněná (uplatni je přes moderátorský panel, viz SC-15).
- Otevři Upravit.
- Ověřit: pod polem Max. počet uplatnění je poznámka, že nejméně 3, tolikrát už byl uplatněn.
- Nastav hodnotu na 1 a ulož.
Očekávání:
| Test | Výsledek |
|---|---|
| Chyba | U pole Max. počet uplatnění |
| Modál | Zůstal otevřený |
| Hodnota v databázi | Nezměnila se, v přehledu je stále 5 |
SC-14 · Sloupec Uplatněno a přehled uplatnění
Section titled “SC-14 · Sloupec Uplatněno a přehled uplatnění”Příprava: Jeden voucher neuplatněný, jeden částečně uplatněný (max 3, uplatněno 1) a jeden vyčerpaný.
- Podívej se na sloupec Uplatněno.
Očekávání:
| Voucher | Ikona |
|---|---|
| Neuplatněný | Křížek, šedý |
| Částečně uplatněný | Fajfka, oranžová |
| Vyčerpaný | Dvojitá fajfka, zelená |
- Najeď myší na ikonu částečně uplatněného voucheru.
- Ověřit: popisek ukazuje počet ve tvaru „Uplatněno 1x z 3”.
- Ověřit: kliknutí na ikonu nic neotevře, ikona slouží jen ke čtení stavu.
- U stejného řádku klikni na tlačítko Uplatnění.
Očekávání:
- Otevřel se přehled uplatnění
- U každého záznamu je název kvízu, tým, kdo uplatnění zapsal a kdy
- Pokud byla u uplatnění poznámka, je vidět
- Ověřit: u neuplatněného voucheru se tlačítko Uplatnění u řádku nenabízí.
SC-15 · Uplatnění moderátorem
Section titled “SC-15 · Uplatnění moderátorem”Příprava: Platný voucher a událost s alespoň dvěma týmy s výsledky.
- Otevři moderátorský panel události.
- Projdi na krok Potvrzení.
- Zadej kód voucheru a vyber tým.
Očekávání:
- Zelená hláška o uplatnění
- Voucher se objeví v seznamu uplatnění u události
- V administraci se stav voucheru změnil a ikona ve sloupci Uplatněno se překlopila
-
Zkus uplatnit stejný kód znovu nad rámec limitu.
-
Ověřit: systém ho odmítne.
-
Vytvoř voucher pouze pro speciály a zkus ho uplatnit na standardním kvízu.
-
Ověřit: systém ho odmítne.
-
Vytvoř voucher s expirací v minulosti a zkus ho uplatnit.
-
Ověřit: systém ho odmítne.
SC-16 · Voucher ve financích moderátora
Section titled “SC-16 · Voucher ve financích moderátora”Příprava: Událost s uplatněným voucherem, výsledky zadané.
-
V moderátorském panelu se podívej na finanční souhrn.
-
Ověřit: pod částkou Vybráno je řádek se sumou uplatněných voucherů.
-
Potvrď výsledky.
-
Ověřit: v kroku Hotovo souhrn drží stejné hodnoty, částka Poslat Chytrému Kvízu je o voucher nižší.
-
Zopakuj s voucherem typu Tým.
-
Ověřit: částka odpovídá startovnému vynásobenému počtem hráčů týmu, ne jednomu hráči.
SC-17 · Kopírování kódu
Section titled “SC-17 · Kopírování kódu”Příprava: Otevřený přehled voucherů, na https i na http adrese.
- Najeď myší na kód voucheru.
- Ověřit: u kódu je ikona kopírování a popisek „Kliknutím zkopíruješ kód”.
- Klikni na kód.
- Ověřit: objeví se potvrzení „Kód zkopírován”.
- Vlož obsah schránky do libovolného textového pole.
- Ověřit: vložil se přesně ten kód.
SC-18 · Smazání šablony
Section titled “SC-18 · Smazání šablony”Příprava: Šablona, kterou používá alespoň jeden voucher, a šablona, kterou nepoužívá nikdo.
- U nepoužívané šablony klikni na Smazat.
- Ověřit: potvrzovací dialog říká, že šablonu nepoužívá žádný voucher.
- Potvrď.
Očekávání:
- Šablona zmizela ze seznamu
- Zobrazila se hláška o smazání, ne tichý zánik
- U používané šablony klikni na Smazat.
- Ověřit: dialog uvádí počet voucherů, které ji používají.
- Potvrď.
- Ověřit: dotčené vouchery mají ve sloupci Šablona prázdno a akce Stáhnout PDF se u nich už nenabízí.
SC-19 · Pořadí sloupců
Section titled “SC-19 · Pořadí sloupců”Příprava: Otevřený přehled voucherů.
Očekávání: sloupce jdou v tomto pořadí:
| Pořadí | Sloupec |
|---|---|
| 1 | Kód |
| 2 | Stav |
| 3 | Typ |
| 4 | Typ eventu |
| 5 | Max. uplatnění |
| 6 | Uplatněno |
| 7 | Pro |
| 8 | Šablona |
| 9 | Expirace |
| 10 | Poznámka |
Sloupce Hodnota/hráč a Vytvořeno jsou skryté a jdou zapnout přepínačem sloupců.
Regresní checklist
Section titled “Regresní checklist”Po testování výše ověřit, že tyto oblasti nespadly:
- Moderátorský panel projde celým krokem Potvrzení i bez voucheru (tlačítko Přeskočit)
- Finanční souhrn moderátora sedí i u události zcela bez voucherů
- Hromadné akce Změnit šablonu a Smazat vybrané fungují na výběru desítek řádků
- Hledání v přehledu funguje podle kódu i podle jména příjemce
- Filtry Stav a Typ vrací správný výběr
- Stránkování přehledu funguje a nezalamuje se
- Nahrání šablony přes výběr ve formuláři voucheru uloží šablonu i do knihovny
- Editor rozvržení otevřený z formuláře voucheru nenabízí změnu názvu ani obrázku
- Uživatel bez oprávnění na modul Vouchery se na stránky nedostane
Automatizované testy
Section titled “Automatizované testy”docker-compose exec fpm php artisan test tests/Feature/Vouchers/ --compactdocker-compose exec fpm php artisan test --filter=VoucherCreationSplitTest --compactdocker-compose exec fpm php artisan test --filter=VoucherRowActionsTest --compactdocker-compose exec fpm php artisan test --filter=VoucherInlineValidationTest --compactdocker-compose exec fpm php artisan test --filter=VoucherRedemptionsViewTest --compactdocker-compose exec fpm php artisan test --filter=VoucherTemplateEditTest --compact