Skip to content

Commit ae14a5c

Browse files
chore: Fix unclosed databases in WorkManager tests (#3070)
Co-authored-by: Vincent Tran <hello@vincetran.me>
1 parent c365bd7 commit ae14a5c

File tree

4 files changed

+21
-11
lines changed

4 files changed

+21
-11
lines changed

aws-logging-cloudwatch/src/test/kotlin/com/amplifyframework/logging/cloudwatch/CloudWatchLogManagerTest.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import io.mockk.slot
4242
import kotlinx.coroutines.ExperimentalCoroutinesApi
4343
import kotlinx.coroutines.test.UnconfinedTestDispatcher
4444
import kotlinx.coroutines.test.runTest
45+
import org.junit.After
4546
import org.junit.Assert.assertEquals
4647
import org.junit.Assert.assertFalse
4748
import org.junit.Before
@@ -93,6 +94,11 @@ internal class CloudWatchLogManagerTest {
9394
)
9495
}
9596

97+
@After
98+
fun cleanup() {
99+
WorkManagerTestInitHelper.closeWorkDatabase()
100+
}
101+
96102
@Test
97103
fun `on saveLogEvents and cache not full`() = runTest {
98104
val cloudwatchEvent = CloudWatchLogEvent(System.currentTimeMillis(), "Sample log")

aws-logging-cloudwatch/src/test/kotlin/com/amplifyframework/logging/cloudwatch/LoggingConstraintsResolverTest.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import io.mockk.every
3434
import io.mockk.mockk
3535
import kotlinx.coroutines.ExperimentalCoroutinesApi
3636
import kotlinx.coroutines.test.runTest
37+
import org.junit.After
3738
import org.junit.Assert.assertEquals
3839
import org.junit.Test
3940
import org.junit.runner.RunWith
@@ -46,6 +47,11 @@ internal class LoggingConstraintsResolverTest {
4647
private lateinit var loggingConstraintsResolver: LoggingConstraintsResolver
4748
private val userId = "USER_ID"
4849

50+
@After
51+
fun cleanup() {
52+
WorkManagerTestInitHelper.closeWorkDatabase()
53+
}
54+
4955
@Test
5056
fun `test default logLevel`() {
5157
val loggingConstraintsResolver = LoggingConstraintsResolver()

aws-storage-s3/src/test/java/com/amplifyframework/storage/s3/transfer/worker/ImmediateTaskExecutor.kt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,21 @@
1414
*/
1515
package com.amplifyframework.storage.s3.transfer.worker
1616

17-
import androidx.work.impl.utils.SerialExecutor
1817
import androidx.work.impl.utils.SynchronousExecutor
18+
import androidx.work.impl.utils.taskexecutor.SerialExecutor
1919
import androidx.work.impl.utils.taskexecutor.TaskExecutor
2020
import java.util.concurrent.Executor
2121

2222
class ImmediateTaskExecutor : TaskExecutor {
2323
private val mSynchronousExecutor: Executor = SynchronousExecutor()
24-
private val mSerialExecutor = SerialExecutor(mSynchronousExecutor)
25-
override fun postToMainThread(runnable: Runnable?) {
26-
runnable?.run()
27-
}
24+
private val mSerialExecutor = SerialExecutorImpl(mSynchronousExecutor)
2825

2926
override fun getMainThreadExecutor(): Executor = mSynchronousExecutor
3027

31-
override fun executeOnBackgroundThread(runnable: Runnable?) {
32-
runnable?.let { mSerialExecutor.execute(it) }
33-
}
28+
override fun getSerialTaskExecutor(): SerialExecutor = mSerialExecutor
3429

35-
override fun getBackgroundExecutor(): SerialExecutor = mSerialExecutor
30+
private class SerialExecutorImpl(val delegate: Executor) : SerialExecutor, Executor by delegate {
31+
// There's never any pending tasks since we execute all immediately
32+
override fun hasPendingTasks() = false
33+
}
3634
}

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ androidx-test-core = "1.3.0"
1717
androidx-test-junit = "1.1.2"
1818
androidx-test-orchestrator = "1.4.2"
1919
androidx-test-runner = "1.3.0"
20-
androidx-workmanager = "2.7.1"
20+
androidx-workmanager = "2.9.1"
2121
apollo = "4.0.0"
2222
aws-kotlin = "1.3.81" # ensure proper aws-smithy version also set
2323
aws-sdk = "2.62.2"
@@ -74,7 +74,7 @@ androidx-nav-ui = { module = "androidx.navigation:navigation-ui", version.ref =
7474
androidx-security = { module = "androidx.security:security-crypto", version.ref = "androidx-security" }
7575
androidx-sqlite = { module = "androidx.sqlite:sqlite", version.ref = "androidx-sqlite" }
7676
androidx-v4support = { module = "androidx.legacy:legacy-support-v4", version.ref = "androidx-legacy" }
77-
androidx-workmanager = { module = "androidx.work:work-runtime-ktx", version.ref = "androidx-workmanager" }
77+
androidx-workmanager = { module = "androidx.work:work-runtime", version.ref = "androidx-workmanager" }
7878
apollo-runtime = { module = "com.apollographql.apollo:apollo-runtime", version.ref = "apollo" }
7979
aws-cloudwatchlogs = { module = "aws.sdk.kotlin:cloudwatchlogs", version.ref = "aws-kotlin" }
8080
aws-cognitoidentity = { module = "aws.sdk.kotlin:cognitoidentity", version.ref = "aws-kotlin" }

0 commit comments

Comments
 (0)