Skip to content

Commit 21eb136

Browse files
authored
Merge pull request #2083 from OneSignal/tests/fix-flaky-tests-2024-05-09
[Tests] Fix flaky tests 2024/05/09
2 parents 6a6dbc2 + 939a164 commit 21eb136

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/http/HttpClientTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ class HttpClientTests : FunSpec({
239239

240240
mocks.factory.mockResponse = mockSuccessfulResponse
241241
val response2 =
242-
withTimeoutOrNull(999) {
242+
withTimeoutOrNull(975) {
243243
mocks.httpClient.post("URL", JSONObject())
244244
}
245245

OneSignalSDK/onesignal/core/src/test/java/com/onesignal/core/internal/operations/OperationRepoTests.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,8 @@ class OperationRepoTests : FunSpec({
607607
// When
608608
mocks.operationRepo.addOperationLoadedListener(spyListener)
609609
mocks.operationRepo.start()
610+
// enqueueAndWait used to know we are fully loaded.
611+
mocks.operationRepo.enqueueAndWait(mockOperation())
610612

611613
// Then
612614
mocks.operationRepo.hasSubscribers shouldBe true

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

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.onesignal.user.internal.migrations
22

3+
import com.onesignal.common.threading.Waiter
34
import com.onesignal.core.internal.config.ConfigModelStore
5+
import com.onesignal.core.internal.operations.IOperationRepoLoadedListener
46
import com.onesignal.core.internal.operations.impl.OperationModelStore
57
import com.onesignal.core.internal.operations.impl.OperationRepo
68
import com.onesignal.core.internal.time.impl.Time
@@ -31,16 +33,24 @@ class RecoverFromDroppedLoginBugTests : FunSpec({
3133
)
3234
every { mockOperationModelStore.loadOperations() } just runs
3335
every { mockOperationModelStore.list() } returns listOf()
34-
35-
val recovery = RecoverFromDroppedLoginBug(operationRepo, MockHelper.identityModelStore(), mockConfigModelStore)
36-
every { recovery.onOperationRepoLoaded() } just runs
36+
val recovery = spyk(RecoverFromDroppedLoginBug(operationRepo, MockHelper.identityModelStore(), mockConfigModelStore))
3737

3838
// When
39-
operationRepo.start()
4039
recovery.start()
40+
val waiter = Waiter()
41+
operationRepo.addOperationLoadedListener(
42+
object : IOperationRepoLoadedListener {
43+
override fun onOperationRepoLoaded() {
44+
waiter.wake()
45+
}
46+
},
47+
)
48+
operationRepo.start()
49+
// Waiting here ensures recovery.onOperationRepoLoaded() is called consistently
50+
waiter.waitForWake()
4151

4252
// Then
43-
verify {
53+
verify(exactly = 1) {
4454
operationRepo.subscribe(recovery)
4555
recovery.onOperationRepoLoaded()
4656
}

0 commit comments

Comments
 (0)