@@ -26,15 +26,13 @@ import com.powersync.testutils.factory
26
26
import com.powersync.testutils.generatePrintLogWriter
27
27
import com.powersync.testutils.waitFor
28
28
import com.powersync.utils.JsonUtil
29
- import dev.mokkery.answering.calls
30
29
import dev.mokkery.answering.returns
31
30
import dev.mokkery.everySuspend
32
- import dev.mokkery.matcher.any
33
31
import dev.mokkery.mock
34
32
import dev.mokkery.verify
35
33
import kotlinx.coroutines.CompletableDeferred
34
+ import kotlinx.coroutines.CoroutineScope
36
35
import kotlinx.coroutines.DelicateCoroutinesApi
37
- import kotlinx.coroutines.GlobalScope
38
36
import kotlinx.coroutines.channels.Channel
39
37
import kotlinx.coroutines.runBlocking
40
38
import kotlinx.coroutines.test.runTest
@@ -109,7 +107,7 @@ class SyncIntegrationTest {
109
107
) as PowerSyncDatabaseImpl
110
108
111
109
@OptIn(DelicateCoroutinesApi ::class )
112
- private fun syncStream (): SyncStream {
110
+ private fun CoroutineScope. syncStream (): SyncStream {
113
111
val client = MockSyncService (syncLines, { checkpointResponse() })
114
112
return SyncStream (
115
113
bucketStorage = database.bucketStorage,
@@ -119,7 +117,7 @@ class SyncIntegrationTest {
119
117
retryDelayMs = 10 ,
120
118
logger = logger,
121
119
params = JsonObject (emptyMap()),
122
- scope = GlobalScope ,
120
+ scope = this ,
123
121
)
124
122
}
125
123
@@ -543,6 +541,8 @@ class SyncIntegrationTest {
543
541
@Test
544
542
fun `handles checkpoints during uploads` () =
545
543
runTest {
544
+ val testConnector = TestConnector ()
545
+ connector = testConnector
546
546
database.connectInternal(syncStream(), 1000L )
547
547
548
548
suspend fun expectUserRows (amount : Int ) {
@@ -552,13 +552,13 @@ class SyncIntegrationTest {
552
552
553
553
val completeUpload = CompletableDeferred <Unit >()
554
554
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
+ }
562
562
}
563
563
564
564
// 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 {
629
629
requestedCheckpoint.complete(Unit )
630
630
WriteCheckpointResponse (WriteCheckpointData (" " ))
631
631
}
632
+ println (" marking update as completed" )
632
633
completeUpload.complete(Unit )
633
634
requestedCheckpoint.await()
634
635
0 commit comments