Skip to content

Commit 6b9cbd3

Browse files
committed
chores: tests: replace or remove thread.sleep or delay in tests
1 parent 6f2d264 commit 6b9cbd3

File tree

6 files changed

+27
-20
lines changed

6 files changed

+27
-20
lines changed

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/common/threading/CompletionAwaiterTests.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,6 @@ class CompletionAwaiterTests : FunSpec({
115115
jobs.add(thread)
116116
}
117117

118-
// Wait a bit to ensure all threads are waiting
119-
Thread.sleep(100)
120-
121118
// Complete the awaiter
122119
awaiter.complete()
123120

@@ -257,9 +254,6 @@ class CompletionAwaiterTests : FunSpec({
257254
}
258255
blockingThreads.forEach { it.start() }
259256

260-
// Wait a bit to ensure all are waiting
261-
Thread.sleep(100)
262-
263257
// Complete the awaiter
264258
awaiter.complete()
265259

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/application/ApplicationServiceTests.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,19 @@ import com.onesignal.common.threading.suspendifyOnIO
99
import com.onesignal.core.internal.application.impl.ApplicationService
1010
import com.onesignal.debug.LogLevel
1111
import com.onesignal.debug.internal.logging.Logging
12+
import com.onesignal.mocks.IOMockHelper
13+
import com.onesignal.mocks.IOMockHelper.awaitIO
1214
import io.kotest.core.spec.style.FunSpec
1315
import io.kotest.matchers.shouldBe
1416
import io.mockk.spyk
1517
import io.mockk.verify
16-
import kotlinx.coroutines.delay
1718
import org.robolectric.Robolectric
1819

1920
@RobolectricTest
2021
class ApplicationServiceTests : FunSpec({
2122

23+
listener(IOMockHelper)
24+
2225
beforeAny {
2326
Logging.logLevel = LogLevel.NONE
2427
}
@@ -199,7 +202,7 @@ class ApplicationServiceTests : FunSpec({
199202
waiter.wake(response)
200203
}
201204

202-
delay(7000)
205+
awaitIO(7_000)
203206

204207
applicationService.onActivityStarted(activity)
205208
val response = waiter.waitForWake()
@@ -224,8 +227,6 @@ class ApplicationServiceTests : FunSpec({
224227
waiter.wake(response)
225228
}
226229

227-
delay(3000)
228-
229230
applicationService.onActivityStarted(activity)
230231
val response = waiter.waitForWake()
231232

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/preferences/PreferencesServiceTests.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ import com.onesignal.core.internal.preferences.impl.PreferencesService
77
import com.onesignal.debug.LogLevel
88
import com.onesignal.debug.internal.logging.Logging
99
import com.onesignal.mocks.AndroidMockHelper
10+
import com.onesignal.mocks.IOMockHelper
11+
import com.onesignal.mocks.IOMockHelper.awaitIO
1012
import com.onesignal.mocks.MockHelper
1113
import io.kotest.assertions.throwables.shouldThrowUnit
1214
import io.kotest.core.spec.style.FunSpec
1315
import io.kotest.matchers.shouldBe
14-
import kotlinx.coroutines.delay
1516

1617
@RobolectricTest
1718
class PreferencesServiceTests : FunSpec({
@@ -22,6 +23,8 @@ class PreferencesServiceTests : FunSpec({
2223
val mockStringPrefStoreKey = "mock-string"
2324
val mockStringSetPrefStoreKey = "mock-string-set"
2425

26+
listener(IOMockHelper)
27+
2528
beforeAny {
2629
Logging.logLevel = LogLevel.NONE
2730
}
@@ -182,7 +185,7 @@ class PreferencesServiceTests : FunSpec({
182185
preferencesService.saveStringSet(mockPrefStoreName, mockStringSetPrefStoreKey, setOf("default1", "default2"))
183186
preferencesService.start()
184187

185-
delay(1000)
188+
awaitIO()
186189

187190
val store =
188191
ApplicationProvider.getApplicationContext<Context>().getSharedPreferences(
@@ -219,7 +222,7 @@ class PreferencesServiceTests : FunSpec({
219222
preferencesService.saveStringSet(mockPrefStoreName, mockStringSetPrefStoreKey, null)
220223
preferencesService.start()
221224

222-
delay(1000)
225+
awaitIO()
223226

224227
// Then
225228
store.contains(mockBoolPrefStoreKey) shouldBe false

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/startup/StartupServiceTests.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.onesignal.common.services.ServiceProvider
55
import com.onesignal.debug.LogLevel
66
import com.onesignal.debug.internal.logging.Logging
77
import com.onesignal.mocks.IOMockHelper
8+
import com.onesignal.mocks.IOMockHelper.awaitIO
89
import io.kotest.assertions.throwables.shouldThrowUnit
910
import io.kotest.core.spec.style.FunSpec
1011
import io.kotest.matchers.shouldBe
@@ -89,9 +90,9 @@ class StartupServiceTests : FunSpec({
8990

9091
// When
9192
startupService.scheduleStart()
93+
awaitIO()
9294

9395
// Then
94-
Thread.sleep(10)
9596
verify(exactly = 1) { mockStartupService1.start() }
9697
verify(exactly = 1) { mockStartupService2.start() }
9798
}

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/session/internal/outcomes/OutcomeEventsControllerTests.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import com.onesignal.common.exceptions.BackendException
44
import com.onesignal.common.threading.Waiter
55
import com.onesignal.debug.LogLevel
66
import com.onesignal.debug.internal.logging.Logging
7+
import com.onesignal.mocks.IOMockHelper
8+
import com.onesignal.mocks.IOMockHelper.awaitIO
79
import com.onesignal.mocks.MockHelper
810
import com.onesignal.session.internal.influence.IInfluenceManager
911
import com.onesignal.session.internal.influence.Influence
@@ -32,10 +34,12 @@ import io.mockk.just
3234
import io.mockk.mockk
3335
import io.mockk.runs
3436
import io.mockk.spyk
35-
import kotlinx.coroutines.delay
3637
import org.json.JSONArray
3738

3839
class OutcomeEventsControllerTests : FunSpec({
40+
41+
listener(IOMockHelper)
42+
3943
beforeAny {
4044
Logging.logLevel = LogLevel.NONE
4145
}
@@ -595,7 +599,7 @@ class OutcomeEventsControllerTests : FunSpec({
595599
// When
596600
outcomeEventsController.start()
597601

598-
delay(1000)
602+
awaitIO()
599603

600604
// Then
601605
coVerify(exactly = 1) {
@@ -687,7 +691,7 @@ class OutcomeEventsControllerTests : FunSpec({
687691
// When
688692
outcomeEventsController.start()
689693

690-
delay(1000)
694+
awaitIO()
691695

692696
// Then
693697
coVerify(exactly = 1) {
@@ -763,7 +767,7 @@ class OutcomeEventsControllerTests : FunSpec({
763767

764768
// When
765769
outcomeEventsController.start()
766-
delay(1000)
770+
awaitIO()
767771

768772
// Then
769773
coVerify(exactly = 1) {

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/user/internal/migrations/RecoverFromDroppedLoginBugTests.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import com.onesignal.core.internal.operations.impl.OperationRepo
55
import com.onesignal.core.internal.time.impl.Time
66
import com.onesignal.debug.LogLevel
77
import com.onesignal.debug.internal.logging.Logging
8+
import com.onesignal.mocks.IOMockHelper
9+
import com.onesignal.mocks.IOMockHelper.awaitIO
810
import com.onesignal.mocks.MockHelper
911
import com.onesignal.user.internal.operations.ExecutorMocks
1012
import com.onesignal.user.internal.operations.LoginUserOperation
@@ -16,7 +18,6 @@ import io.mockk.mockk
1618
import io.mockk.runs
1719
import io.mockk.spyk
1820
import io.mockk.verify
19-
import kotlinx.coroutines.delay
2021
import kotlinx.coroutines.withTimeout
2122

2223
private class Mocks {
@@ -76,6 +77,9 @@ private class Mocks {
7677
}
7778

7879
class RecoverFromDroppedLoginBugTests : FunSpec({
80+
81+
listener(IOMockHelper)
82+
7983
beforeAny {
8084
Logging.logLevel = LogLevel.NONE
8185
}
@@ -100,7 +104,7 @@ class RecoverFromDroppedLoginBugTests : FunSpec({
100104
// When
101105
mocks.operationRepo.start()
102106
// give operation repo some time to fully initialize
103-
delay(200)
107+
awaitIO()
104108

105109
mocks.recovery.start()
106110
withTimeout(1_000) { mocks.operationRepo.awaitInitialized() }

0 commit comments

Comments
 (0)