Přeskočit na obsah

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 a binds, 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

  1. Migrace na lokální D1: npm run d1:apply:local (binding DB dle wrangler.jsonc).
  2. Build klienta (nutné pro vite preview): npm run build.
  3. Automatický HTTP průchod: npm run smoke:byliny-matrix — spustí vite preview na portu 4173, vytiskne řádky ID\tHTTP\tcesta a server ukončí. Předem musí být npm run build. Host/port preview měníš v scripts/smoke-byliny-matrix.sh (musí sedět s BASE_URL / proměnnou BASE ve skriptu).
  4. Ruční kontrola v prohlížeči: npm run dev a 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.

IDScénářRelativní URLCo zkontrolovatHTTP (2026-05-11, vite preview :4173, po d1:apply:local + build)
R1Bez filtrů/byliny200, seznam bylin, filtry bez chyb200
R2Region/byliny?region=ceska-republika200200
R3Měsíc/byliny?month=5200200
R4Měsíc + část/byliny?month=5&part=kvet200200
R5Zpracování (OR)/byliny?pm=caj&pm=olej200200
R6Téma + scope věda/byliny?topic=spanek&topicScope=science200200
R7Téma tradice/byliny?topic=spanek&topicScope=tradition200200
R8Téma lifestyle/byliny?topic=spanek&topicScope=lifestyle200200
R9Věda substantial + práh/byliny?science=substantial&scienceMin=moderate200200
R10Věda none/byliny?science=none200200
R11Typ studie (science any)/byliny?science=any&studyType=clinical_trial200200
R12Spiritual příznak/byliny?spiritual=1200200
R13Spiritual facet (OR)/byliny?spiritualFacet=ritual200200
R14Bezpečnost/byliny?safety=caution200200
R15Kombinace (zátěž)/byliny?q=kopriva&month=5&part=kvet&region=cr&pm=caj&pm=tinktura&topic=stres&topicScope=science&science=substantial&scienceMin=moderate&studyType=clinical_trial&safety=caution&spiritual=1200 nebo kontrolovaný prázdný stav200

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.