@@ -48,8 +48,15 @@ void main() {
48
48
49
49
test ('watch' , () async {
50
50
var stream = dbu.select (dbu.todoItems).watch ();
51
- var resultsPromise =
52
- stream.distinct ().skipWhile ((e) => e.isEmpty).take (3 ).toList ();
51
+ var resultsPromise = stream
52
+ // toString() so that we can use distinct()
53
+ .map ((rows) => rows.toString ())
54
+ // Drift may or may not emit duplicate update notifications.
55
+ // We use distinct() to ignore those.
56
+ .distinct ()
57
+ .skipWhile ((e) => e.isEmpty)
58
+ .take (3 )
59
+ .toList ();
53
60
54
61
await dbu.into (dbu.todoItems).insert (
55
62
TodoItemsCompanion .insert (id: Value (1 ), description: 'Test 1' ));
@@ -65,16 +72,20 @@ void main() {
65
72
expect (
66
73
results,
67
74
equals ([
68
- [TodoItem (id: 1 , description: ' Test 1' )] ,
69
- [TodoItem (id: 1 , description: ' Test 1B' )] ,
70
- []
75
+ ' [TodoItem(id: 1, description: Test 1)]' ,
76
+ ' [TodoItem(id: 1, description: Test 1B)]' ,
77
+ '[]'
71
78
]));
72
79
});
73
80
74
81
test ('watch with external updates' , () async {
75
82
var stream = dbu.select (dbu.todoItems).watch ();
76
- var resultsPromise =
77
- stream.distinct ().skipWhile ((e) => e.isEmpty).take (3 ).toList ();
83
+ var resultsPromise = stream
84
+ .map ((rows) => rows.toString ())
85
+ .distinct ()
86
+ .skipWhile ((e) => e.isEmpty)
87
+ .take (3 )
88
+ .toList ();
78
89
79
90
await db.execute (
80
91
'INSERT INTO todos(id, description) VALUES(?, ?)' , [1 , 'Test 1' ]);
@@ -88,9 +99,9 @@ void main() {
88
99
expect (
89
100
results,
90
101
equals ([
91
- [TodoItem (id: 1 , description: ' Test 1' )] ,
92
- [TodoItem (id: 1 , description: ' Test 1B' )] ,
93
- []
102
+ ' [TodoItem(id: 1, description: Test 1)]' ,
103
+ ' [TodoItem(id: 1, description: Test 1B)]' ,
104
+ '[]'
94
105
]));
95
106
});
96
107
});
0 commit comments