@@ -207,7 +207,7 @@ void main() {
207207 expect (() => c.setRequestUpdatesMode (SyncRequestUpdatesMode .auto), error);
208208 });
209209
210- test ('SyncClient simple coverage (no server available)' , () {
210+ test ('SyncClient simple coverage (no server available)' , () async {
211211 SyncClient c = createClient (store);
212212 expect (c.isClosed (), isFalse);
213213
@@ -234,12 +234,20 @@ void main() {
234234 expect (c.requestUpdates (subscribeForFuturePushes: true ), isFalse);
235235 expect (c.requestUpdates (subscribeForFuturePushes: false ), isFalse);
236236 expect (c.outgoingMessageCount (), isZero);
237- if (Platform .isWindows) {
238- print (
239- 'Skipping triggerReconnect on Windows, needs fixing, see objectbox-dart#159' );
240- } else {
241- c.triggerReconnect ();
237+ // Wait until client reaches state disconnected (as there is no server),
238+ // only then reconnect will be attempted.
239+ var waitedForDisconnected = 0 ;
240+ while (c.state () != SyncState .disconnected) {
241+ if (waitedForDisconnected == 0 ) {
242+ print ('Waiting until SyncClient state is disconnected...' );
243+ }
244+ if (waitedForDisconnected == 50 ) {
245+ fail ('SyncClient did not reach disconnected state within 5 seconds' );
246+ }
247+ await Future .delayed (const Duration (milliseconds: 100 ));
248+ waitedForDisconnected++ ;
242249 }
250+ expect (c.triggerReconnect (), true );
243251 c.stop ();
244252 expect (c.state (), equals (SyncState .stopped));
245253 });
0 commit comments