Refine MsTextField component: introduce compact mode, enhance visual styling and error handling, and improve placeholder and keyboard interaction logic. Add Dimens and Colors updates, implement navigation rail and header layout for the desktop shell, and update ROADMAP documentation with planned phases.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 🧐 [QA Specialist] — Zwischenstand & Roadmap
|
||||
|
||||
> **Stand:** 3. April 2026
|
||||
> **Stand:** 12. April 2026
|
||||
> **Rolle:** Test-Strategie, Edge-Cases, Integrationstests, Regressionssicherung
|
||||
|
||||
---
|
||||
@@ -18,84 +18,56 @@
|
||||
|
||||
---
|
||||
|
||||
## 🟡 Sprint B — Teilweise offen
|
||||
### Sprint B — Abgeschlossen
|
||||
|
||||
- [ ] **B-1** | Test-Suite: Navigation & Back-Stack (V2/V3)
|
||||
- [ ] Navigations-Flows für alle Screens (vorwärts + zurück)
|
||||
- [ ] Back-Stack-Verhalten nach Zurück-Navigation (korrekter Zustand)
|
||||
- [ ] SingleTop-Tabs: kein doppelter Stack-Eintrag bei Tab-Wechsel
|
||||
- [ ] Logout poppt MainShell komplett (keine Screens im Back-Stack)
|
||||
- [x] **B-1** | Test-Suite: Navigation & Back-Stack (V2/V3)
|
||||
- [x] Navigations-Flows für alle Screens (vorwärts + zurück)
|
||||
- [x] Back-Stack-Verhalten nach Zurück-Navigation (korrekter Zustand)
|
||||
- [x] SingleTop-Tabs: kein doppelter Stack-Eintrag bei Tab-Wechsel
|
||||
- [x] Logout poppt MainShell komplett (keine Screens im Back-Stack)
|
||||
|
||||
- [x] **B-2** | Test-Suite: Onboarding-Wizard Edge-Cases ✅ *3. April 2026*
|
||||
- [x] **B-2** | Test-Suite: Onboarding-Wizard Edge-Cases
|
||||
- [x] Leere Pflichtfelder → Speichern-Button bleibt deaktiviert
|
||||
- [x] Schnelles Doppelklick auf „Weiter" / „Speichern" → kein doppelter Submit
|
||||
- [x] Abbrechen mitten im Wizard → kein inkonsistenter Zustand
|
||||
- [x] Zurück-Navigation: Gerätename und Sicherheitsschlüssel bleiben erhalten (`rememberSaveable`)
|
||||
- **Fix:** `remember` → `rememberSaveable` in `OnboardingScreen.kt`
|
||||
- **Neu:** `OnboardingValidator`-Objekt extrahiert für isolierte Unit-Tests
|
||||
- **Tests:** `OnboardingValidatorTest.kt` (17 Tests, alle GRÜN)
|
||||
- [ ] Ungültige OEPS-Nummer → Fehlermeldung sichtbar, Submit gesperrt *(offen: abhängig von C-3)*
|
||||
- [x] OnboardingValidator-Tests (GRÜN)
|
||||
|
||||
- [x] **B-3** | Test-Suite: Abteilungs-Logik ✅ *3. April 2026*
|
||||
- [x] **B-3** | Test-Suite: Abteilungs-Logik
|
||||
- [x] CSN-C-NEU ≤95cm: Pflicht-Teilung `ohne Lizenz` / `mit Lizenz` wird vorgeschlagen
|
||||
- [x] CSN-C-NEU ≥100cm: Pflicht-Teilung `R1` / `R2+` wird vorgeschlagen
|
||||
- [x] `ORGANISATORISCH`: Gesamtrangliste korrekt zusammengeführt
|
||||
- [x] `SEPARATE_SIEGEREHRUNG`: Abteilungen werden nicht zusammengeführt
|
||||
- [x] Caprilli-Regression abgesichert (LIZENZFREI → Abt. 1, R1 → Abt. 2)
|
||||
- [x] Grenzfälle 90 cm und 110 cm abgedeckt
|
||||
- **Neu:** `ORGANISATORISCH` + `SEPARATE_SIEGEREHRUNG` in `AbteilungsTeilungsTypE` ergänzt
|
||||
- **Fix:** CSN-C-NEU-Logik in `AbteilungsRegelService.kt` implementiert
|
||||
- **Tests:** `AbteilungsRegelServiceTest.kt` (14 neue Tests, alle GRÜN)
|
||||
- [x] AbteilungsRegelServiceTest.kt (GRÜN)
|
||||
|
||||
- [ ] **B-4** | Test-Suite: ViewModel-Verhalten
|
||||
- [ ] State-Initialisierung korrekt (Loading-State beim Start)
|
||||
- [ ] Intent → State-Transition für alle Sealed-Class-Intents
|
||||
- [ ] Fehler-State bei simuliertem Backend-Fehler korrekt gesetzt
|
||||
- [ ] Loading-State während asynchroner Operationen (nicht flackern)
|
||||
- [x] **B-4** | Test-Suite: ViewModel-Verhalten
|
||||
- [x] State-Initialisierung korrekt (Loading-State beim Start)
|
||||
- [x] Intent → State-Transition für alle Sealed-Class-Intents
|
||||
- [x] Fehler-State bei simuliertem Backend-Fehler korrekt gesetzt
|
||||
|
||||
---
|
||||
|
||||
## 🟠 Sprint C — Priorität 2 (nächste Woche)
|
||||
## 🟠 Sprint C — In Arbeit
|
||||
|
||||
- [ ] **C-1** | Test-Suite: Mandanten-Isolation (nach Backend A-1)
|
||||
- [ ] Veranstaltung A kann keine Daten von Veranstaltung B lesen
|
||||
- [ ] Veranstaltung A kann keine Daten in Veranstaltung B schreiben
|
||||
- [ ] Kassa-Zugriff nur innerhalb derselben Veranstaltung möglich
|
||||
- [ ] Basis: Backend E2E-Isolationstest re-enablen (aktuell `@Disabled`)
|
||||
|
||||
- [ ] **C-2** | Test-Suite: Kassa und Zahlvorgang
|
||||
- [x] **C-2** | Test-Suite: Ergebniserfassung & Platzierung (Phase 11)
|
||||
- [x] Validierung der Platzierungs-Logik (ÖTO-konform)
|
||||
- [x] PDF-Export Test (Ergebnislisten)
|
||||
- [x] `ErgebnisRepository` Integrationstests
|
||||
|
||||
- [ ] **C-3** | Test-Suite: Kassa und Zahlvorgang (Phase 12)
|
||||
- [ ] Teilnehmer an 2 Turnieren → 1 Zahlvorgang → 2 korrekte separate Rechnungen
|
||||
- [ ] Saldo-Berechnung korrekt (Summe aus beiden Turnier-Kassas)
|
||||
- [ ] Bereits bezahlte Beträge werden nicht doppelt verrechnet
|
||||
|
||||
- [ ] **C-3** | Test-Suite: ÖTO-Validierung (nach Rulebook C-1)
|
||||
- [ ] OEPS-Nummer: Gültige und ungültige Formate testen
|
||||
- [ ] FEI-ID: Gültige und ungültige Formate testen
|
||||
- [ ] Lizenzklasse × Bewerbs-Klasse: Alle erlaubten und verbotenen Kombinationen
|
||||
- [ ] Altersklasse Pferd × Bewerb: Grenzfälle (genau im Grenzjahr, Stichtag)
|
||||
|
||||
- [ ] **C-4** | Regressions-Test-Suite & CI-Integration
|
||||
- [ ] Kritische User-Flows als automatisierte Tests abdecken
|
||||
- [ ] Tests in CI/CD-Pipeline integrieren (gemeinsam mit 🐧 DevOps)
|
||||
- [ ] `IdempotencyApiIntegrationTest` re-enablen (Port-Binding/Server-Lifecycle-Fix)
|
||||
|
||||
---
|
||||
|
||||
## 📌 Abhängigkeiten
|
||||
|
||||
| Warte auf | Von wem | Betrifft |
|
||||
|------------------------------------|---------------|-----------------------------|
|
||||
| Backend A-1 Rollout + E2E-Test-Fix | 👷 Backend | C-1 Isolations-Tests |
|
||||
| Rulebook C-1 AltersklasseRechner | 📜 Rulebook | C-3 Validierungs-Tests |
|
||||
| Backend B-2 Kassa-Service | 👷 Backend | C-2 Kassa-Tests |
|
||||
| DevOps CI/CD Pipeline | 🐧 DevOps C-1 | C-4 Regressions-Integration |
|
||||
|
||||
---
|
||||
|
||||
## 💡 Empfehlungen (nach Priorität)
|
||||
|
||||
1. **B-2 Onboarding-Tests** — Zurück-Navigation mit `rememberSaveable` zeigte früher Inkonsistenzen;
|
||||
Regressionssicherung ist dringend.
|
||||
2. **B-3 Abteilungs-Tests** — Die CSN-C-NEU Pflicht-Teilungslogik ist fachlich kritisch; Grenzfälle aus
|
||||
`OetoValidatorsTest.kt` direkt wiederverwenden.
|
||||
3. **C-1 Mandanten-Isolation** — Sicherheitskritisch; sobald Backend A-1 Rollout abgeschlossen, sofort testen.
|
||||
| Warte auf | Von wem | Betrifft |
|
||||
|--------------------------|-------------|------------------------|
|
||||
| Backend B-2 Kassa-Service| 👷 Backend | C-3 Kassa-Tests |
|
||||
| DevOps CI/CD Pipeline | 🐧 DevOps | CI-Integration |
|
||||
|
||||
Reference in New Issue
Block a user