@@ -9,8 +9,8 @@ import io.customer.sdk.core.util.ScopeProvider
99import io.customer.sdk.events.Metric
1010import kotlinx.coroutines.async
1111import kotlinx.coroutines.awaitAll
12- import kotlinx.coroutines.delay
1312import kotlinx.coroutines.runBlocking
13+ import kotlinx.coroutines.yield
1414import org.amshove.kluent.internal.assertEquals
1515import org.amshove.kluent.shouldBe
1616import org.amshove.kluent.shouldBeEqualTo
@@ -52,7 +52,7 @@ class EventBusTest : JUnit5Test() {
5252 println (" Publishing event: $testEvent " )
5353 eventBus.publish(testEvent)
5454
55- delay( 100 ) // Give some time for the event to be collected
55+ yield ( ) // Allow event processing
5656
5757 events.shouldHaveSingleItem()
5858 .shouldBeInstanceOf<Event .ProfileIdentifiedEvent >()
@@ -72,7 +72,7 @@ class EventBusTest : JUnit5Test() {
7272 println (" Publishing first event: $firstEvent " )
7373 eventBus.publish(firstEvent)
7474
75- delay( 100 ) // Give some time for the event to be collected
75+ yield ( ) // Allow event processing
7676
7777 assertEquals(1 , events.size)
7878 assertEquals(firstEvent.name, (events[0 ] as Event .ScreenViewedEvent ).name)
@@ -84,7 +84,7 @@ class EventBusTest : JUnit5Test() {
8484 println (" Publishing second event: $secondEvent " )
8585 eventBus.publish(secondEvent)
8686
87- delay( 100 ) // Give some time for the event to be collected
87+ yield ( ) // Allow event processing
8888
8989 events.size shouldBeEqualTo 1 // No new events should be collected after cancelAll()
9090 }
@@ -106,7 +106,7 @@ class EventBusTest : JUnit5Test() {
106106 println (" Publishing event: $testEvent " )
107107 eventBus.publish(testEvent)
108108
109- delay( 200 ) // Give some time for the event to be collected
109+ yield ( ) // Allow event processing
110110
111111 subscriber1.shouldHaveSingleItem()
112112 .shouldBeInstanceOf<Event .TrackPushMetricEvent >()
@@ -147,7 +147,7 @@ class EventBusTest : JUnit5Test() {
147147 eventBus.publish(testEvent1)
148148 eventBus.publish(testEvent2)
149149
150- delay( 100 ) // Give some time for the events to be collected
150+ yield ( ) // Allow event processing
151151
152152 subscriber1.size shouldBeEqualTo 2
153153 subscriber1.map { it as Event .RegisterDeviceTokenEvent }.any { it.token == " Token 1" } shouldBe true
@@ -171,7 +171,7 @@ class EventBusTest : JUnit5Test() {
171171 val unrelatedEvent = Event .ResetEvent
172172 eventBus.publish(unrelatedEvent)
173173
174- delay( 100 ) // Give some time to ensure no events are collected
174+ yield ( ) // Allow event processing
175175
176176 assertEquals(0 , events.size) // No events should be collected
177177
@@ -187,14 +187,14 @@ class EventBusTest : JUnit5Test() {
187187 eventBus.publish(event)
188188 }
189189
190- delay( 100 ) // Give some time for the events to be published
190+ yield ( ) // Allow event processing
191191
192192 val events = mutableListOf<Event >()
193193 val job = eventBus.subscribe<Event .TrackInAppMetricEvent > { event ->
194194 events.add(event)
195195 }
196196
197- delay( 100 ) // Give some time for the events to be collected by the new subscriber
197+ yield ( ) // Allow event processing
198198
199199 for (i in 0 until 15 ) {
200200 (events[i] as Event .TrackInAppMetricEvent ).event shouldBeEqualTo Metric .Delivered
@@ -220,7 +220,7 @@ class EventBusTest : JUnit5Test() {
220220 }
221221 publishJobs.awaitAll()
222222
223- delay( 200 ) // Give time for all events to be processed
223+ yield ( ) // Allow event processing
224224
225225 // Should receive all 100 events
226226 events.size shouldBeEqualTo 100
@@ -251,7 +251,7 @@ class EventBusTest : JUnit5Test() {
251251 eventBus.publish(Event .ScreenViewedEvent (" screen$index " ))
252252 }
253253
254- delay( 500 ) // Allow processing time
254+ yield ( ) // Allow event processing
255255
256256 val duration = System .currentTimeMillis() - startTime
257257
@@ -277,14 +277,14 @@ class EventBusTest : JUnit5Test() {
277277 eventBus.publish(Event .TrackInAppMetricEvent (" deliveryId$index " , Metric .Delivered , params = mapOf (" index" to index.toString())))
278278 }
279279
280- delay( 100 ) // Allow events to be buffered
280+ yield ( ) // Allow event processing
281281
282282 val events = mutableListOf<Event >()
283283 val job = eventBus.subscribe<Event .TrackInAppMetricEvent > { event ->
284284 events.add(event)
285285 }
286286
287- delay( 100 ) // Give time for replay events to be delivered
287+ yield ( ) // Allow event processing
288288
289289 // Should only receive the last 100 events due to replay buffer limit
290290 events.size shouldBeEqualTo 100
0 commit comments