diff --git a/CHANGELOG.md b/CHANGELOG.md index 234f36b..8013583 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,21 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/). ## [Unreleased] +### 🐛 Cloud-Kontingent-Fix aus dem Task-Review (2026-08-29) + +- 🔁 **`BakaAuth.abmelden()` setzt jetzt auch `verbleibend` zurück.** + Referenzmuster `GastZugang.verwerfen()` setzt `_verbleibend = null` mit, + `abmelden()` tat das bisher nicht — nur `_token`/`_benutzer` wurden + zurückgesetzt. Meldet sich ein Cloud-User ab und ein ANDERER Cloud-User + (Dustin/Baka/Tinker) danach an, wäre sonst bis zum nächsten Download der + alte Kontingent-Stand des vorherigen Accounts sichtbar geblieben. + Aktuell folgenlos (da `verbleibend` bis zum Server-Rollout ohnehin immer + `null` ist), aber ein latenter Bug, der beim Server-Rollout live + gegangen wäre. (`lib/services/baka_auth.dart`) +- ✅ **Getestet (RED→GREEN):** neuer Test „Abmelden setzt auch den + Kontingent-Stand zurück" in `test/services/baka_auth_test.dart`. Volle + Suite grün, `flutter analyze` ohne Befund. + ### ☁️ Cloud-Account-Kontingent: App-Seite für das 100/Tag-Limit (2026-08-29) - ⚠️ **Reine App-Seite, ohne Wirkung bis der Server mitzieht.** Die diff --git a/lib/services/baka_auth.dart b/lib/services/baka_auth.dart index 1d47cdf..4ef1421 100644 --- a/lib/services/baka_auth.dart +++ b/lib/services/baka_auth.dart @@ -126,6 +126,7 @@ class BakaAuth extends ChangeNotifier { Future abmelden() async { _token = null; _benutzer = ''; + _verbleibend = null; await _speicher.loeschen(_tokenKey); await _speicher.loeschen(_userKey); notifyListeners(); diff --git a/test/services/baka_auth_test.dart b/test/services/baka_auth_test.dart index b992265..6d3e4e7 100644 --- a/test/services/baka_auth_test.dart +++ b/test/services/baka_auth_test.dart @@ -143,6 +143,20 @@ void main() { expect(benachrichtigt, 1); }); + test('Abmelden setzt auch den Kontingent-Stand zurück', () async { + final speicher = _MemorySpeicher(); + final auth = BakaAuth( + client: MockClient( + (_) async => http.Response(jsonEncode({'token': 'jwt-abc'}), 200)), + speicher: speicher); + await auth.anmelden('Baka', 'geheim'); + auth.merkeVerbleibend(42); + + await auth.abmelden(); + + expect(auth.verbleibend, isNull); + }); + test('Abmelden löscht Token und Benutzer aus dem Speicher', () async { final speicher = _MemorySpeicher(); final auth = BakaAuth(