@@ -35,26 +35,23 @@ main() {
3535
3636 test ('base action updates state' , () async {
3737 setup ();
38+ expect (store.state.count, 1 );
3839 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 );
4241 });
4342
4443 test ('nested built value' , () async {
4544 setup ();
45+ expect (store.state.nestedCounter.count, 1 );
4646 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 );
5048 });
5149
5250 test ('middleware action doubles count and updates state' , () async {
5351 setup ();
52+ expect (store.state.count, 1 );
5453 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 );
5855 });
5956
6057 test ('2 middlewares doubles count twice and updates state' , () async {
@@ -70,14 +67,15 @@ main() {
7067 else
7168 onStateChangeCompleter2.complete (state);
7269 });
73- // should add 2 twice
70+
71+ // should add double the current state twice
7472 store.actions.middlewareActions.increment (0 );
75- var stateChange = await store.stream.first ;
73+ var stateChange = await onStateChangeCompleter.future ;
7674 expect (stateChange.prev.count, 1 );
7775 expect (stateChange.next.count, 3 );
78- stateChange = await store.stream.first ;
76+ stateChange = await onStateChangeCompleter2.future ;
7977 expect (stateChange.prev.count, 3 );
80- expect (stateChange.next.count, 5 );
78+ expect (stateChange.next.count, 9 );
8179 });
8280
8381 test ('store change handler' , () async {
@@ -125,14 +123,15 @@ main() {
125123
126124 test ('state transformer' , () async {
127125 setup ();
128-
126+ final completer = new Completer < SubstateChange < int >>();
129127 final sub = store.substateStream <int >((BaseCounter state) => state.count);
128+ sub.first.then (completer.complete);
130129
131130 store.actions.increment (4 );
132131 // would cause completer to complete twice and fail the test
133132 store.actions.nestedCounterActions.increment (1 );
134133
135- var change = await sub.first ;
134+ var change = await completer.future ;
136135 expect (change.prev, 1 );
137136 expect (change.next, 5 );
138137 });
@@ -172,65 +171,62 @@ main() {
172171
173172 test ('nextState stream' , () async {
174173 setup ();
174+ final completer = new Completer <BaseCounter >();
175+ store.nextState.first.then (completer.complete);
175176 store.actions.increment (4 );
176- var stateChange = await store.nextState.first ;
177+ var stateChange = await completer.future ;
177178 expect (stateChange.count, 5 );
178179 });
179180
180181 test ('nextSubstate stream' , () async {
181182 setup ();
182183
183184 final sub = store.nextSubstate <int >((BaseCounter state) => state.count);
185+ final completer = new Completer <int >();
186+ sub.first.then (completer.complete);
184187
185188 store.actions.increment (4 );
186189 // would cause completer to complete twice and fail the test
187190 store.actions.nestedCounterActions.increment (1 );
188191
189- var change = await sub.first ;
192+ var change = await completer.future ;
190193 expect (change, 5 );
191194 });
192195
193196 test ('ActionDispatcher<Null>' , () async {
194197 setup ();
198+ expect (store.state.count, 1 );
195199 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 );
199201 });
200202
201203 test ('ActionDispatcher<Null> with null payload' , () async {
202204 setup ();
205+ expect (store.state.count, 1 );
203206 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 );
207208 });
208209
209210 test ('ActionDispatcher<SomeTypeDef>' , () async {
210211 setup ();
212+ expect (store.state.count, 1 );
211213 store.actions.thunkDispatcher (
212214 (MiddlewareApi <BaseCounter , BaseCounterBuilder , BaseCounterActions >
213215 api) {
214216 api.actions.incrementOne ();
215217 });
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 );
219219 });
220220
221221 test ('payload with generic type' , () async {
222222 setup ();
223+ expect (store.state.count, 1 );
223224 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 );
228226 store.actions.genericAction2 (< String , List <int >> {
229227 'add' : [1 , 2 , 3 ]
230228 });
231- stateChange = await store.stream.first;
232- expect (stateChange.prev.count, 7 );
233- expect (stateChange.next.count, 13 );
229+ expect (store.state.count, 13 );
234230 });
235231 });
236232}
0 commit comments