P2.3 — Regresní matice katalogu /byliny na lokální D1
Účel: po změnách v
buildHerbCatalogFilterIdsQuery(app/db/herb-catalog-filter-ids-query.server.ts), migracích nebo seedu ověřit, že kombinace filtrů na reálné D1 dávají očekávané chování (200, rozumný počet karet, žádná 500). Doplňuje Vitest na tvar SQL abinds, který D1 neprovádí.
Souvislost: refaktor-v3.md §P2.3 · filtry-katalogu-bylin.md · příklad kombinované URL v 23-api-and-routes.md.
Příprava
- Migrace na lokální D1:
npm run d1:apply:local(bindingDBdlewrangler.jsonc). - Build klienta (nutné pro
vite preview):npm run build. - Automatický HTTP průchod:
npm run smoke:byliny-matrix— spustívite previewna portu 4173, vytiskne řádkyID\tHTTP\tcestaa server ukončí. Předem musí býtnpm run build. Host/port preview měníš vscripts/smoke-byliny-matrix.sh(musí sedět sBASE_URL/ proměnnouBASEve skriptu). - Ruční kontrola v prohlížeči:
npm run deva ověření UI (skript kontroluje jen status kód).
Slugy níže vycházejí z produkční dokumentace a seedů; pokud lokální data chybí, nejdřív doplň migrace/seed nebo řádek označ přeskočit a poznamenej si proč.
Matice (HTTP)
Sloupec HTTP — očekává se 200 (prázdný výsledek katalogu je stále 200). Počet karet zkontroluj ručně při pochybnosti.
| ID | Scénář | Relativní URL | Co zkontrolovat | HTTP (2026-05-11, vite preview :4173, po d1:apply:local + build) |
|---|---|---|---|---|
| R1 | Bez filtrů | /byliny | 200, seznam bylin, filtry bez chyb | 200 |
| R2 | Region | /byliny?region=ceska-republika | 200 | 200 |
| R3 | Měsíc | /byliny?month=5 | 200 | 200 |
| R4 | Měsíc + část | /byliny?month=5&part=kvet | 200 | 200 |
| R5 | Zpracování (OR) | /byliny?pm=caj&pm=olej | 200 | 200 |
| R6 | Téma + scope věda | /byliny?topic=spanek&topicScope=science | 200 | 200 |
| R7 | Téma tradice | /byliny?topic=spanek&topicScope=tradition | 200 | 200 |
| R8 | Téma lifestyle | /byliny?topic=spanek&topicScope=lifestyle | 200 | 200 |
| R9 | Věda substantial + práh | /byliny?science=substantial&scienceMin=moderate | 200 | 200 |
| R10 | Věda none | /byliny?science=none | 200 | 200 |
| R11 | Typ studie (science any) | /byliny?science=any&studyType=clinical_trial | 200 | 200 |
| R12 | Spiritual příznak | /byliny?spiritual=1 | 200 | 200 |
| R13 | Spiritual facet (OR) | /byliny?spiritualFacet=ritual | 200 | 200 |
| R14 | Bezpečnost | /byliny?safety=caution | 200 | 200 |
| R15 | Kombinace (zátěž) | /byliny?q=kopriva&month=5&part=kvet®ion=cr&pm=caj&pm=tinktura&topic=stres&topicScope=science&science=substantial&scienceMin=moderate&studyType=clinical_trial&safety=caution&spiritual=1 | 200 nebo kontrolovaný prázdný stav | 200 |
Po dokončení: npm run verify v repu; při FAIL zapiš URL, chybovou hlášku a zda jde o data vs. regresi SQL.
Volitelně: příkazová řada D1
Pro ladění samotného SQL (bez Reactu) lze použít wrangler d1 execute DB --local --command="…" s dotazem odvozeným od výstupu buildHerbCatalogFilterIdsQuery (např. dočasně zalogovat sql v dev módu). Pro rutinní regresi stačí tabulka a skript výše.