diff --git a/.agents/skills/grand-functions/SKILL.md b/.agents/skills/grand-functions/SKILL.md index 5020f04..422aeff 100644 --- a/.agents/skills/grand-functions/SKILL.md +++ b/.agents/skills/grand-functions/SKILL.md @@ -11,3 +11,5 @@ Dieser Skill enthält die vollständige Dokumentation und Spezifikation des CASP - [Datenmodell & Schema](file:///c:/source/webshop/.agents/skills/grand-functions/references/schema.md) - [Kernprozesse](file:///c:/source/webshop/.agents/skills/grand-functions/references/processes.md) - [Sicherheitskonzept (RLS)](file:///c:/source/webshop/.agents/skills/grand-functions/references/security.md) +- [Testumgebung & -abdeckung](file:///c:/source/webshop/.agents/skills/grand-functions/references/testing.md) + diff --git a/.agents/skills/grand-functions/references/testing.md b/.agents/skills/grand-functions/references/testing.md new file mode 100644 index 0000000..605f7e0 --- /dev/null +++ b/.agents/skills/grand-functions/references/testing.md @@ -0,0 +1,21 @@ +# Testumgebung & Testabdeckung + +## 1. Test-Setup +- **Framework**: Vitest (Version ^1.6.0) +- **Konfiguration**: [vitest.config.ts](file:///c:/source/webshop/shop/vitest.config.ts) +- **Befehl**: `npm run test` (führt `vitest run` aus) + +--- + +## 2. Test-Szenarien + +### A. Frontend Wizard State-Management +Getestet in [wizard-state.test.ts](file:///c:/source/webshop/shop/lib/wizard-state.test.ts): +- **Auto-Reset bei Produktwechsel**: Prüft, ob nachgelagerte Module, die durch `global_exclusions` für das neue Produkt gesperrt sind, automatisch aus der Selektion fliegen. +- **Radio-Button-Verhalten (allow_multiselect = false)**: Stellt sicher, dass in Single-Select-Kategorien nur maximal ein Modul aktiv ist und bei Auswahl eines anderen Moduls das vorherige automatisch abgewählt wird. + +### B. Backend Checkout-Split +Getestet in [checkout-split.test.ts](file:///c:/source/webshop/shop/lib/checkout-split.test.ts): +- **Kauf-Warenkorb**: Verifiziert, dass ein reiner Kauf-Warenkorb (`one_time`/`purchase`) exakt eine Order erzeugt. +- **Abo-Warenkorb**: Verifiziert, dass ein reiner Abo-Warenkorb (`monthly`/`subscription`) exakt eine Order erzeugt. +- **Gemischter Warenkorb**: Stellt sicher, dass ein gemischter Warenkorb korrekt in zwei separate Bestell-Gruppen aufgeteilt wird (Kauf-Items & Abo-Items separat).