147 lines
4.3 KiB
Markdown
147 lines
4.3 KiB
Markdown
# M1 Rekonstruierter Golden Master
|
|
|
|
Stand: 2026-07-11
|
|
|
|
Da kein alter MS-SQL-Datenbankstand verfuegbar ist, wird M1 als rekonstruierter
|
|
Golden Master aufgebaut. Die Referenz entsteht aus Legacy-Code, Screenshots und
|
|
kontrollierten Testdaten in der MySQL-Dev-Datenbank.
|
|
|
|
## Ziel
|
|
|
|
Die wichtigsten fachlichen Regeln werden mit kleinen, nachvollziehbaren
|
|
Testfaellen festgeschrieben. Diese Tests dienen spaeter als Sicherheitsnetz fuer
|
|
die SaaS-Umstrukturierung.
|
|
|
|
## Testdaten-Gruppen
|
|
|
|
### Teilnehmer
|
|
|
|
- Aktives normales Mitglied.
|
|
- Aktiver Admin.
|
|
- Inaktives Mitglied.
|
|
- Mitglied mit PayPal-Namen.
|
|
- Mitglied ohne Buchungen.
|
|
|
|
### Buchungen
|
|
|
|
- Einzahlung mit positivem Betrag.
|
|
- Mehrere Einzahlungen an unterschiedlichen Tagen.
|
|
- Strichbuchung mit einem Strich.
|
|
- Strichbuchung mit zwei Strichen.
|
|
- Sammelerfassung fuer mehrere Teilnehmer.
|
|
- Web-Strich-Eintrag mit `Eintragsart = 2`.
|
|
|
|
### Salden
|
|
|
|
- Positiver Kontostand.
|
|
- Negativer Kontostand.
|
|
- Nullsaldo.
|
|
- Jahreswerte fuer aktuelles Jahr.
|
|
- Altdaten aus Vorjahr, die nicht in Jahreswerte fallen.
|
|
|
|
### CSV-Import
|
|
|
|
- Treffer ueber Name.
|
|
- Treffer ueber `paypalname`.
|
|
- Dublette gleicher Teilnehmer, Betrag und Datum.
|
|
- Unbekannter Name.
|
|
- Negativer oder leerer Betrag.
|
|
|
|
### Hinweise
|
|
|
|
- Aktiver Hinweis.
|
|
- Abgelaufener Hinweis.
|
|
- Neuer Hinweis ueber Admin-Formular.
|
|
|
|
## Erwartete Referenzwerte
|
|
|
|
Fuer jeden Testfall sollen erwartete Werte dokumentiert werden:
|
|
|
|
- Summe Einzahlungen.
|
|
- Summe Kosten.
|
|
- Summe Striche.
|
|
- Aktueller Stand.
|
|
- Jahresstriche.
|
|
- Jahreseinzahlungen.
|
|
- Jahresausgaben.
|
|
- Sichtbarkeit in Listen und Filtern.
|
|
|
|
## Umsetzungsvorschlag
|
|
|
|
1. `database/mysql-dev-schema.sql` um stabile Seed-Daten erweitern oder separates
|
|
Seed-Skript anlegen. Erledigt mit `scripts/seed-golden-master.php`.
|
|
2. `scripts/init-mysql-dev.php` so erweitern, dass es die Testdaten idempotent
|
|
anlegt. Entschieden: Golden-Master-Daten bleiben in einem separaten Skript,
|
|
damit normale Dev-Daten nicht zwangsweise ueberschrieben werden.
|
|
3. Ein erstes Vergleichsskript `scripts/check-golden-master.php` erstellen.
|
|
Erledigt.
|
|
4. Die wichtigsten Seiten per HTTP abrufen und auf erwartete Texte/Werte pruefen.
|
|
5. Danach M2 starten: technisches Fundament fuer SaaS-Struktur.
|
|
|
|
## Skripte
|
|
|
|
- `scripts/dev-db.php`: gemeinsame DB-Verbindung fuer Dev-Skripte.
|
|
- `scripts/golden-master-data.php`: definierte Testdaten und erwartete Werte.
|
|
- `scripts/seed-golden-master.php`: legt Golden-Master-Testdaten idempotent an.
|
|
- `scripts/check-golden-master.php`: prueft Salden, Jahreswerte, Rollen,
|
|
Listenfilter, CSV-Lookup und Hinweise.
|
|
|
|
## Ausfuehrung
|
|
|
|
Mit normal installierter PHP-CLI:
|
|
|
|
```bash
|
|
php scripts/seed-golden-master.php
|
|
php scripts/check-golden-master.php
|
|
```
|
|
|
|
In der aktuellen lokalen Umgebung mit entpacktem PHP:
|
|
|
|
```bash
|
|
LD_LIBRARY_PATH="$PWD/.local/php/usr/lib/x86_64-linux-gnu" \
|
|
"$PWD/.local/php/usr/bin/php8.3" \
|
|
-c "$PWD/.local/php-dev.ini" \
|
|
scripts/seed-golden-master.php
|
|
|
|
LD_LIBRARY_PATH="$PWD/.local/php/usr/lib/x86_64-linux-gnu" \
|
|
"$PWD/.local/php/usr/bin/php8.3" \
|
|
-c "$PWD/.local/php-dev.ini" \
|
|
scripts/check-golden-master.php
|
|
```
|
|
|
|
Die Skripte erwarten die bekannten Dev-Umgebungsvariablen `DB_HOST`, `DB_NAME`,
|
|
`DB_USER` und `DB_PASS`.
|
|
|
|
## Abgedeckte Testfaelle
|
|
|
|
| Testfall | Fixture |
|
|
| --- | --- |
|
|
| Admin mit Buchung | `gm-admin@test.local` |
|
|
| Positiver Saldo mit Vorjahresdaten | `gm-positive@test.local` |
|
|
| Negativer Saldo | `gm-negative@test.local` |
|
|
| Nullsaldo | `gm-zero@test.local` |
|
|
| Inaktives Mitglied | `gm-inactive@test.local` |
|
|
| PayPal-Name fuer CSV-Lookup | `gm-paypal@test.local` |
|
|
| Mitglied ohne Buchungen | `gm-empty@test.local` |
|
|
| Vieltrinker fuer Vorderseite | `gm-heavy@test.local` |
|
|
| Aktiver Hinweis | `[GM] Aktiver Hinweis fuer Golden-Master-Test` |
|
|
| Abgelaufener Hinweis | `[GM] Abgelaufener Hinweis fuer Golden-Master-Test` |
|
|
|
|
## Akzeptanzkriterien
|
|
|
|
- Testdaten sind reproduzierbar.
|
|
- Tests koennen mehrfach laufen, ohne Duplikate zu erzeugen.
|
|
- Salden und Jahreswerte sind automatisch pruefbar.
|
|
- CSV-Importfaelle sind fachlich abgedeckt.
|
|
- Die wichtigsten UI-Seiten liefern HTTP 200 ohne PHP-Warnings.
|
|
|
|
## Aktueller Pruefstatus
|
|
|
|
Stand 2026-07-11:
|
|
|
|
- `scripts/seed-golden-master.php` erfolgreich gegen die MySQL-Dev-Datenbank
|
|
ausgefuehrt.
|
|
- `scripts/check-golden-master.php` erfolgreich ausgefuehrt.
|
|
- Zweiter Seed+Check-Lauf erfolgreich, Idempotenz bestaetigt.
|
|
- Ergebnis: 104 Assertions bestanden.
|