Skip to content

Commit 4caba6b

Browse files
committed
Enforce tests to start with clean Firebase app
This hopefully makes tests more stable (and more accurate
1 parent d58c6b5 commit 4caba6b

File tree

8 files changed

+50
-1
lines changed
  • firebase-app/src/commonTest/kotlin/dev/gitlive/firebase
  • firebase-auth/src/commonTest/kotlin/dev/gitlive/firebase/auth
  • firebase-config/src/commonTest/kotlin/dev/gitlive/firebase/remoteconfig
  • firebase-crashlytics/src/commonTest/kotlin/dev/gitlive/firebase/crashlytics
  • firebase-database/src/commonTest/kotlin/dev/gitlive/firebase/database
  • firebase-firestore/src/commonTest/kotlin/dev/gitlive/firebase/firestore
  • firebase-perf/src

8 files changed

+50
-1
lines changed

firebase-app/src/commonTest/kotlin/dev/gitlive/firebase/firebase.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.gitlive.firebase
22

33
import kotlin.test.Test
4+
import kotlin.test.assertEquals
45

56
expect val context: Any
67
expect fun runTest(test: suspend () -> Unit)
@@ -21,6 +22,12 @@ class FirebaseAppTest {
2122
gcmSenderId = "846484016111"
2223
)
2324
)
25+
26+
assertEquals(1, Firebase.apps(context).size)
27+
28+
Firebase.apps(context).forEach {
29+
it.delete()
30+
}
2431
}
2532

2633
}

firebase-auth/src/commonTest/kotlin/dev/gitlive/firebase/auth/auth.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ class FirebaseAuthTest {
3737
}
3838
}
3939

40+
@AfterTest
41+
fun deinitializeFirebase() {
42+
Firebase.apps(context).forEach {
43+
it.delete()
44+
}
45+
}
46+
4047
@Test
4148
fun testSignInWithUsernameAndPassword() = runTest {
4249
val uid = getTestUid("[email protected]", "test123")

firebase-config/src/commonTest/kotlin/dev/gitlive/firebase/remoteconfig/FirebaseRemoteConfig.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ class FirebaseRemoteConfigTest {
5050
@AfterTest
5151
fun tearDown() = runTest {
5252
Firebase.remoteConfig.reset()
53+
Firebase.apps(context).forEach {
54+
it.delete()
55+
}
5356
}
5457

5558
@Test

firebase-crashlytics/src/commonTest/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import dev.gitlive.firebase.apps
1010
import dev.gitlive.firebase.initialize
1111
import kotlinx.coroutines.CoroutineScope
1212
import kotlinx.coroutines.test.TestResult
13+
import kotlin.test.AfterTest
1314
import kotlin.test.BeforeTest
1415
import kotlin.test.Test
1516
import kotlin.test.assertFalse
@@ -41,6 +42,13 @@ class FirebaseCrashlyticsTest {
4142
}
4243
}
4344

45+
@AfterTest
46+
fun deinitializeFirebase() {
47+
Firebase.apps(context).forEach {
48+
it.delete()
49+
}
50+
}
51+
4452
@Test
4553
fun testRecordException() = runTest {
4654

firebase-database/src/commonTest/kotlin/dev/gitlive/firebase/database/database.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ class FirebaseDatabaseTest {
4040
}
4141
}
4242

43+
@AfterTest
44+
fun deinitializeFirebase() {
45+
Firebase.apps(context).forEach {
46+
it.delete()
47+
}
48+
}
49+
4350
@Test
4451
fun testSetValue() = runTest {
4552
val testValue = "test"

firebase-firestore/src/commonTest/kotlin/dev/gitlive/firebase/firestore/firestore.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import kotlinx.coroutines.withContext
1919
import kotlinx.serialization.Serializable
2020
import kotlinx.serialization.builtins.nullable
2121
import kotlin.random.Random
22+
import kotlin.test.AfterTest
2223
import kotlin.test.BeforeTest
2324
import kotlin.test.Test
2425
import kotlin.test.assertEquals
@@ -69,6 +70,13 @@ class FirebaseFirestoreTest {
6970
}
7071
}
7172

73+
@AfterTest
74+
fun deinitializeFirebase() {
75+
Firebase.apps(context).forEach {
76+
it.delete()
77+
}
78+
}
79+
7280
@Test
7381
fun testStringOrderBy() = runTest {
7482
setupFirestoreData()

firebase-perf/src/commonTest/kotlin/dev/gitlive/firebase/perf/performance.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@ class FirebasePerformanceTest {
3939
}
4040
}
4141

42+
@AfterTest
43+
fun deinitializeFirebase() {
44+
Firebase.apps(context).forEach {
45+
it.delete()
46+
}
47+
}
48+
4249
@Test
4350
fun testNewTrace() = runTest {
4451

firebase-perf/src/jsTest/kotlin/dev/gitlive/firebase/perf/performance.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ actual val emulatorHost: String = "localhost"
1616

1717
actual val context: Any = Unit
1818

19-
actual fun runTest(test: suspend CoroutineScope.() -> Unit) = kotlinx.coroutines.test.runTest(timeout = 5.minutes) { test() }
19+
actual fun runTest(test: suspend CoroutineScope.() -> Unit) = kotlinx.coroutines.test.runTest(timeout = 5.minutes) {
20+
test()
21+
}
2022

2123
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
2224
actual annotation class IgnoreForAndroidUnitTest

0 commit comments

Comments
 (0)