@@ -35,26 +35,23 @@ main() {
35
35
36
36
test ('base action updates state' , () async {
37
37
setup ();
38
+ expect (store.state.count, 1 );
38
39
store.actions.increment (4 );
39
- var stateChange = await store.stream.first;
40
- expect (stateChange.prev.count, 1 );
41
- expect (stateChange.next.count, 5 );
40
+ expect (store.state.count, 5 );
42
41
});
43
42
44
43
test ('nested built value' , () async {
45
44
setup ();
45
+ expect (store.state.nestedCounter.count, 1 );
46
46
store.actions.nestedCounterActions.increment (4 );
47
- var stateChange = await store.stream.first;
48
- expect (stateChange.prev.nestedCounter.count, 1 );
49
- expect (stateChange.next.nestedCounter.count, 5 );
47
+ expect (store.state.nestedCounter.count, 5 );
50
48
});
51
49
52
50
test ('middleware action doubles count and updates state' , () async {
53
51
setup ();
52
+ expect (store.state.count, 1 );
54
53
store.actions.middlewareActions.increment (0 );
55
- var stateChange = await store.stream.first;
56
- expect (stateChange.prev.count, 1 );
57
- expect (stateChange.next.count, 3 );
54
+ expect (store.state.count, 3 );
58
55
});
59
56
60
57
test ('2 middlewares doubles count twice and updates state' , () async {
@@ -70,14 +67,15 @@ main() {
70
67
else
71
68
onStateChangeCompleter2.complete (state);
72
69
});
73
- // should add 2 twice
70
+
71
+ // should add double the current state twice
74
72
store.actions.middlewareActions.increment (0 );
75
- var stateChange = await store.stream.first ;
73
+ var stateChange = await onStateChangeCompleter.future ;
76
74
expect (stateChange.prev.count, 1 );
77
75
expect (stateChange.next.count, 3 );
78
- stateChange = await store.stream.first ;
76
+ stateChange = await onStateChangeCompleter2.future ;
79
77
expect (stateChange.prev.count, 3 );
80
- expect (stateChange.next.count, 5 );
78
+ expect (stateChange.next.count, 9 );
81
79
});
82
80
83
81
test ('store change handler' , () async {
@@ -125,14 +123,15 @@ main() {
125
123
126
124
test ('state transformer' , () async {
127
125
setup ();
128
-
126
+ final completer = new Completer < SubstateChange < int >>();
129
127
final sub = store.substateStream <int >((BaseCounter state) => state.count);
128
+ sub.first.then (completer.complete);
130
129
131
130
store.actions.increment (4 );
132
131
// would cause completer to complete twice and fail the test
133
132
store.actions.nestedCounterActions.increment (1 );
134
133
135
- var change = await sub.first ;
134
+ var change = await completer.future ;
136
135
expect (change.prev, 1 );
137
136
expect (change.next, 5 );
138
137
});
@@ -172,65 +171,62 @@ main() {
172
171
173
172
test ('nextState stream' , () async {
174
173
setup ();
174
+ final completer = new Completer <BaseCounter >();
175
+ store.nextState.first.then (completer.complete);
175
176
store.actions.increment (4 );
176
- var stateChange = await store.nextState.first ;
177
+ var stateChange = await completer.future ;
177
178
expect (stateChange.count, 5 );
178
179
});
179
180
180
181
test ('nextSubstate stream' , () async {
181
182
setup ();
182
183
183
184
final sub = store.nextSubstate <int >((BaseCounter state) => state.count);
185
+ final completer = new Completer <int >();
186
+ sub.first.then (completer.complete);
184
187
185
188
store.actions.increment (4 );
186
189
// would cause completer to complete twice and fail the test
187
190
store.actions.nestedCounterActions.increment (1 );
188
191
189
- var change = await sub.first ;
192
+ var change = await completer.future ;
190
193
expect (change, 5 );
191
194
});
192
195
193
196
test ('ActionDispatcher<Null>' , () async {
194
197
setup ();
198
+ expect (store.state.count, 1 );
195
199
store.actions.incrementOne ();
196
- var stateChange = await store.stream.first;
197
- expect (stateChange.prev.count, 1 );
198
- expect (stateChange.next.count, 2 );
200
+ expect (store.state.count, 2 );
199
201
});
200
202
201
203
test ('ActionDispatcher<Null> with null payload' , () async {
202
204
setup ();
205
+ expect (store.state.count, 1 );
203
206
store.actions.incrementOne (null );
204
- var stateChange = await store.stream.first;
205
- expect (stateChange.prev.count, 1 );
206
- expect (stateChange.next.count, 2 );
207
+ expect (store.state.count, 2 );
207
208
});
208
209
209
210
test ('ActionDispatcher<SomeTypeDef>' , () async {
210
211
setup ();
212
+ expect (store.state.count, 1 );
211
213
store.actions.thunkDispatcher (
212
214
(MiddlewareApi <BaseCounter , BaseCounterBuilder , BaseCounterActions >
213
215
api) {
214
216
api.actions.incrementOne ();
215
217
});
216
- var stateChange = await store.stream.first;
217
- expect (stateChange.prev.count, 1 );
218
- expect (stateChange.next.count, 2 );
218
+ expect (store.state.count, 2 );
219
219
});
220
220
221
221
test ('payload with generic type' , () async {
222
222
setup ();
223
+ expect (store.state.count, 1 );
223
224
store.actions.genericAction1 (< int > [1 , 2 , 3 ]);
224
- var stateChange = await store.stream.first;
225
- expect (stateChange.prev.count, 1 );
226
- expect (stateChange.next.count, 7 );
227
-
225
+ expect (store.state.count, 7 );
228
226
store.actions.genericAction2 (< String , List <int >> {
229
227
'add' : [1 , 2 , 3 ]
230
228
});
231
- stateChange = await store.stream.first;
232
- expect (stateChange.prev.count, 7 );
233
- expect (stateChange.next.count, 13 );
229
+ expect (store.state.count, 13 );
234
230
});
235
231
});
236
232
}
0 commit comments