@@ -26,15 +26,13 @@ import com.powersync.testutils.factory
2626import com.powersync.testutils.generatePrintLogWriter
2727import com.powersync.testutils.waitFor
2828import com.powersync.utils.JsonUtil
29- import dev.mokkery.answering.calls
3029import dev.mokkery.answering.returns
3130import dev.mokkery.everySuspend
32- import dev.mokkery.matcher.any
3331import dev.mokkery.mock
3432import dev.mokkery.verify
3533import kotlinx.coroutines.CompletableDeferred
34+ import kotlinx.coroutines.CoroutineScope
3635import kotlinx.coroutines.DelicateCoroutinesApi
37- import kotlinx.coroutines.GlobalScope
3836import kotlinx.coroutines.channels.Channel
3937import kotlinx.coroutines.runBlocking
4038import kotlinx.coroutines.test.runTest
@@ -109,7 +107,7 @@ class SyncIntegrationTest {
109107 ) as PowerSyncDatabaseImpl
110108
111109 @OptIn(DelicateCoroutinesApi ::class )
112- private fun syncStream (): SyncStream {
110+ private fun CoroutineScope. syncStream (): SyncStream {
113111 val client = MockSyncService (syncLines, { checkpointResponse() })
114112 return SyncStream (
115113 bucketStorage = database.bucketStorage,
@@ -119,7 +117,7 @@ class SyncIntegrationTest {
119117 retryDelayMs = 10 ,
120118 logger = logger,
121119 params = JsonObject (emptyMap()),
122- scope = GlobalScope ,
120+ scope = this ,
123121 )
124122 }
125123
@@ -543,6 +541,8 @@ class SyncIntegrationTest {
543541 @Test
544542 fun `handles checkpoints during uploads` () =
545543 runTest {
544+ val testConnector = TestConnector ()
545+ connector = testConnector
546546 database.connectInternal(syncStream(), 1000L )
547547
548548 suspend fun expectUserRows (amount : Int ) {
@@ -552,13 +552,13 @@ class SyncIntegrationTest {
552552
553553 val completeUpload = CompletableDeferred <Unit >()
554554 val uploadStarted = CompletableDeferred <Unit >()
555- everySuspend { connector.uploadData(any()) } calls { (db : PowerSyncDatabase ) ->
556- val batch = db.getCrudBatch( )
557- if (batch == null ) return @calls
558-
559- uploadStarted.complete( Unit )
560- completeUpload.await( )
561- batch.complete.invoke( null )
555+ testConnector.uploadDataCallback = { db ->
556+ println ( " upload data callback called " )
557+ db.getCrudBatch()?. let { batch ->
558+ uploadStarted.complete( Unit )
559+ completeUpload.await( )
560+ batch.complete.invoke( null )
561+ }
562562 }
563563
564564 // Trigger an upload (adding a keep-alive sync line because the execute could start before the database is fully
@@ -629,6 +629,7 @@ class SyncIntegrationTest {
629629 requestedCheckpoint.complete(Unit )
630630 WriteCheckpointResponse (WriteCheckpointData (" " ))
631631 }
632+ println (" marking update as completed" )
632633 completeUpload.complete(Unit )
633634 requestedCheckpoint.await()
634635
0 commit comments