BakaAuth.abmelden() setzt auch Kontingent-Anzeige zurück
Review-Fix: abmelden() setzte _verbleibend bisher nicht zurück, anders als GastZugang.verwerfen() (_verbleibend = null). Ohne den Fix bliebe nach einem Account-Wechsel (z.B. Baka -> Tinker) der alte Kontingent-Stand sichtbar, bis der nächste Download einen frischen Stand liefert. Aktuell folgenlos (verbleibend ist bis zum Server-Rollout ohnehin immer null), aber ein latenter Bug. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012A2pmbnVNPiHdyf2GW8eLP
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
d03a4e93a0
commit
c3f541f266
@@ -5,6 +5,21 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [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)
|
### ☁️ Cloud-Account-Kontingent: App-Seite für das 100/Tag-Limit (2026-08-29)
|
||||||
|
|
||||||
- ⚠️ **Reine App-Seite, ohne Wirkung bis der Server mitzieht.** Die
|
- ⚠️ **Reine App-Seite, ohne Wirkung bis der Server mitzieht.** Die
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ class BakaAuth extends ChangeNotifier {
|
|||||||
Future<void> abmelden() async {
|
Future<void> abmelden() async {
|
||||||
_token = null;
|
_token = null;
|
||||||
_benutzer = '';
|
_benutzer = '';
|
||||||
|
_verbleibend = null;
|
||||||
await _speicher.loeschen(_tokenKey);
|
await _speicher.loeschen(_tokenKey);
|
||||||
await _speicher.loeschen(_userKey);
|
await _speicher.loeschen(_userKey);
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
|||||||
@@ -143,6 +143,20 @@ void main() {
|
|||||||
expect(benachrichtigt, 1);
|
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 {
|
test('Abmelden löscht Token und Benutzer aus dem Speicher', () async {
|
||||||
final speicher = _MemorySpeicher();
|
final speicher = _MemorySpeicher();
|
||||||
final auth = BakaAuth(
|
final auth = BakaAuth(
|
||||||
|
|||||||
Reference in New Issue
Block a user