From 53f05e50f94ae67d416fa9205f056a79e70c598c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de>
Date: Thu, 16 Sep 2021 10:55:13 +0200
Subject: [PATCH] Use @TempDir instead of /tmp in WebServerIntegrationTest

---
 .../java/org/briarproject/mailbox/core/TestModule.kt  |  4 ++--
 .../mailbox/core/server/WebServerIntegrationTest.kt   | 11 ++++++++---
 2 files changed, 10 insertions(+), 5 deletions(-)

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 a9424052..38d46db1 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 f6d92224..75364243 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()
-- 
GitLab