# nahbar Unit Tests

Swift Testing-basierte Regressionstests für die Kernlogik von nahbar.

## Test-Target einrichten (einmalig)

1. In Xcode: **File → New → Target**
2. Wähle **Unit Testing Bundle**
3. Name: `nahbarTests`, Host Application: `nahbar`
4. **Finish**

5. Rechtsklick auf die erstellten Dateien im Finder → **Add Files to "nahbar"**
   Alternativ: In Xcode die Dateien aus dem `nahbarTests/`-Ordner auf das neue Target ziehen.

6. Sicherstellen, dass alle Dateien als **Target Membership** `nahbarTests` haben.

## Tests ausführen

`Cmd + U` oder **Product → Test**

## Test-Dateien

| Datei | Testet |
|-------|--------|
| `ModelTests.swift` | `Person`, `Moment`, `LogEntry` computed properties, `NudgeFrequency`, `PersonTag`, `MomentType` |
| `AppGroupTests.swift` | JSON-Serialisierung der Pending-Moments-Queue und cachedPeople |
| `UserProfileStoreTests.swift` | Initials-Logik, isEmpty-Logik |
| `CallWindowManagerTests.swift` | Zeitfenster-Berechnung, windowDescription, selectPerson-Filterlogik |
| `AppEventLogTests.swift` | Ring-Buffer-Struktur, Export-Format, Schema-Regressionswächter |

## Wichtige Regressionstests

Die Tests in `AppEventLogTests.swift` → Suite "Schema – Regressionswächter" stellen sicher, dass:
- Die Schema-Versionen V1/V2/V3 korrekte Versionsnummern haben
- Der Migrationsplan genau 3 Schemas und 2 Stages enthält

Diese Tests **schlagen fehl**, wenn die Migration versehentlich geändert wird – genau das ist der Sinn.
