Skip to content

Commit 8105f6c

Browse files
sync_test: for triggerReconnect wait until client is disconnected #159
1 parent 3a43f59 commit 8105f6c

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

objectbox_test/test/sync_test.dart

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)