Dokumentace
Centrum nápovědyTestováníTestovací strategie
docs/cs/06-testing/testing-strategy.md

Testovací strategie

Testovací filozofie OPORA je formována dvěma klíčovými vlastnostmi:

  • deterministický doménový engine
  • bezpečnostní a correctness obálka multi-tenant SaaS

Cíle

  • Prokázat deterministickou správnost výpočetních výstupů.
  • Zabránit regresím v izolaci tenantů (auth/org scoping, IDOR, leaky joins).
  • Ověřit kritické uživatelské journey (projekty, editace, výsledky, export gating).

Testovací vrstvy

Unit testy (doména)

Scope:

  • čisté výpočetní funkce
  • normalizace a validace
  • doménové error typy

Očekávání:

  • rychlé, deterministické, bez sítě a databáze

Integrační testy (hranice aplikace + infrastruktury)

Scope:

  • orchestrace use-case (create/update/calculate/export)
  • pořadí guard logiky (auth → org → RBAC → subscription)
  • Prisma query scoping a ownership checky

Očekávání:

  • používat test databáze nebo izolovaná schémata
  • validovat negativní případy (access denied, not found, gating)

End-to-end testy (uživatelské journey)

Scope:

  • marketing → auth → post-auth → onboarding → projekty → editace → výsledky → export
  • multi-org volba a přepínání organizací

Očekávání:

  • běžet proti staging-like prostředí
  • explicitně ověřit redirecty a gating stránky
  • browser-level smoke testy doplňují aplikační automatizaci o důkaz nad reálným UI flow
  • release sign-off pro Projects flow má mít samostatně dohledatelné smoke evidence

Regression cíle (co se nesmí rozbít)

  • Izolace tenantů: žádné cross-tenant čtení/zápisy.
  • Determinismus: stabilní výstupy pro stabilní vstupy v rámci dané verze enginu.
  • Export gating: vynucený server-side.
  • Autentizace: /app/* není přístupné bez session.