diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/TestModule.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/TestModule.kt index a94240522433410182262f34a31f187f95efb7dd..38d46db1e289328a5f3f4fe3b4394327f2d043e0 100644 --- a/mailbox-core/src/test/java/org/briarproject/mailbox/core/TestModule.kt +++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/TestModule.kt @@ -21,7 +21,7 @@ import javax.inject.Singleton ] ) @InstallIn(SingletonComponent::class) -internal class TestModule { +internal class TestModule(private val tempDir: File) { @Singleton @Provides fun provideClock() = Clock { System.currentTimeMillis() } @@ -30,7 +30,7 @@ internal class TestModule { @Provides fun provideDatabaseConfig() = object : DatabaseConfig { override fun getDatabaseDirectory(): File { - return File("/tmp") + return tempDir } } } diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/WebServerIntegrationTest.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/WebServerIntegrationTest.kt index f6d922246405b4bb3f4daa4d4e73c4eb235746c3..753642437efe430a862737084eff97296ec2cf33 100644 --- a/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/WebServerIntegrationTest.kt +++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/WebServerIntegrationTest.kt @@ -7,26 +7,31 @@ import io.ktor.client.statement.HttpResponse import io.ktor.client.statement.readText import kotlinx.coroutines.runBlocking import org.briarproject.mailbox.core.DaggerTestComponent +import org.briarproject.mailbox.core.TestComponent +import org.briarproject.mailbox.core.TestModule import org.briarproject.mailbox.core.server.WebServerManager.Companion.PORT import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance.Lifecycle +import org.junit.jupiter.api.io.TempDir +import java.io.File import kotlin.test.assertEquals @TestInstance(Lifecycle.PER_CLASS) class WebServerIntegrationTest { - private val testComponent = DaggerTestComponent.builder().build() - private val lifecycleManager = testComponent.getLifecycleManager() + private lateinit var testComponent: TestComponent + private val lifecycleManager by lazy { testComponent.getLifecycleManager() } private val httpClient = HttpClient(CIO) { expectSuccess = false // prevents exceptions on non-success responses } private val baseUrl = "http://127.0.0.1:$PORT" @BeforeAll - fun setUp() { + fun setUp(@TempDir tempDir: File) { + testComponent = DaggerTestComponent.builder().testModule(TestModule(tempDir)).build() testComponent.injectCoreEagerSingletons() lifecycleManager.startServices() lifecycleManager.waitForStartup()