@@ -2,6 +2,7 @@ import 'dart:async';
22
33import 'package:checks/checks.dart' ;
44import 'package:flutter/material.dart' ;
5+ import 'package:flutter_checks/flutter_checks.dart' ;
56import 'package:flutter_test/flutter_test.dart' ;
67import 'package:zulip/log.dart' ;
78import 'package:zulip/model/database.dart' ;
@@ -361,5 +362,24 @@ void main() {
361362 await tester.pumpAndSettle ();
362363 check (findSnackBarByText ('unrelated' ).evaluate ()).single;
363364 });
365+
366+ testWidgets ('reportErrorToUserModally' , (tester) async {
367+ addTearDown (testBinding.reset);
368+ await tester.pumpWidget (const ZulipApp ());
369+ const message = 'test error message' ;
370+ const details = 'details' ;
371+
372+ // Prior to app startup, reportErrorToUserModally only logs.
373+ reportErrorToUserModally (message, details: details);
374+ check (ZulipApp .ready).value.isFalse ();
375+ await tester.pump ();
376+ check (find.byType (AlertDialog )).findsNothing ();
377+
378+ check (ZulipApp .ready).value.isTrue ();
379+ // After app startup, reportErrorToUserModally displays an [AlertDialog].
380+ reportErrorToUserModally (message, details: details);
381+ await tester.pump ();
382+ checkErrorDialog (tester, expectedTitle: message, expectedMessage: details);
383+ });
364384 });
365385}
0 commit comments