File tree 3 files changed +34
-9
lines changed 3 files changed +34
-9
lines changed Original file line number Diff line number Diff line change
1
+ import 'package:flutter/foundation.dart' ;
1
2
2
3
/// Whether [debugLog] should do anything.
3
4
///
4
5
/// This has an effect only in a debug build.
5
6
bool debugLogEnabled = false ;
6
7
8
+ /// Used for log inspection in tests.
9
+ @visibleForTesting
10
+ List <String >? logHistory;
11
+
7
12
/// Print a log message, if debug logging is enabled.
8
13
///
9
14
/// In a debug build, if [debugLogEnabled] is true, this prints the given
@@ -26,6 +31,7 @@ bool debugLog(String message) {
26
31
if (debugLogEnabled) {
27
32
print (message); // ignore: avoid_print
28
33
}
34
+ logHistory? .add (message);
29
35
return true ;
30
36
}());
31
37
return true ;
Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ import '../api/model/model_checks.dart';
14
14
import '../api/model/submessage_checks.dart' ;
15
15
import '../example_data.dart' as eg;
16
16
import '../stdlib_checks.dart' ;
17
+ import '../test_log.dart' ;
17
18
import 'message_list_test.dart' ;
18
19
import 'store_checks.dart' ;
19
20
import 'test_store.dart' ;
@@ -662,15 +663,18 @@ void main() {
662
663
663
664
test ('ignore submessage event with malformed content' , () async {
664
665
final messageId = await preparePollMessage ();
665
- await store.handleEvent (
666
- eg.submessageEvent (
667
- streamMessage.id,
668
- eg.selfUser.userId,
669
- content: jsonEncode ({
670
- 'type' : 'question' ,
671
- // Invalid type for question
672
- 'question' : 123 ,
673
- })));
666
+ await checkLogs (() async {
667
+ await store.handleEvent (
668
+ eg.submessageEvent (
669
+ streamMessage.id,
670
+ eg.selfUser.userId,
671
+ content: jsonEncode ({
672
+ 'type' : 'question' ,
673
+ // Invalid type for question
674
+ 'question' : 123 ,
675
+ })));
676
+ })..length.equals (2 )
677
+ ..last.contains ('Malformed submessage event data for poll' );
674
678
checkNotNotified ();
675
679
check (store.messages[messageId]).isNotNull ().poll.isNotNull ();
676
680
});
Original file line number Diff line number Diff line change
1
+ import 'dart:async' ;
2
+
3
+ import 'package:checks/checks.dart' ;
4
+ import 'package:zulip/log.dart' ;
5
+
6
+ Future <Subject <List <String >>> checkLogs (FutureOr <void > Function () callback) async {
7
+ assert (logHistory == null );
8
+ logHistory = [];
9
+ try {
10
+ await callback ();
11
+ return check (logHistory).isA <List <String >>();
12
+ } finally {
13
+ logHistory = null ;
14
+ }
15
+ }
You can’t perform that action at this time.
0 commit comments