fix(todo): what failed on the account sheet shows on it

The sheet holds snack bars of its own (`hasSnackBars`), so a failed
deletion, sign-out or reading of the account says so on it rather than
behind its barrier.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-21 19:49:18 +02:00
commit 24ccf2a0ab
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
2 changed files with 29 additions and 0 deletions

View file

@ -20,6 +20,9 @@ class const _AccountSheet() extends StatelessWidget {
final l10n = AppLocalizations.of(context);
return SheetScaffold(
title: l10n.accountTitle,
// What failed (signing out, deleting the account, reading it) shows
// on the sheet, not behind its barrier.
hasSnackBars: true,
body: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,

View file

@ -195,6 +195,32 @@ void main() {
expect(find.text('Sign in with GitHub'), findsOneWidget);
});
testWidgets('a deletion the instance never got says so on the account '
'sheet, the person still signed in', (tester) async {
await start(tester, usedBefore: true);
await openAccount(tester);
gateway.deletionError = Exception('No connection');
await tester.tap(find.text('Delete account'));
await tester.pumpAndSettle();
await tester.tap(find.text('Delete account').last);
await tester.pumpAndSettle();
expect(
find.descendant(
of: find.byType(SheetScaffold),
matching: find.widgetWithText(
SnackBar,
"Couldn't delete your account: the instance wasn't reached. "
'Try again.',
),
),
findsOneWidget,
reason: 'on the sheet, not behind its barrier',
);
expect(gateway.status, isA<SignedIn>());
});
testWidgets('About names the source of what the instance runs, which both '
'licences ask to offer', (tester) async {
await start(tester, usedBefore: true);