Skip to content

Commit 7350bb3

Browse files
Move Firebase cleanup into function instead of AfterTest
1 parent 59bbacf commit 7350bb3

File tree

2 files changed

+27
-22
lines changed

2 files changed

+27
-22
lines changed

firebase-database/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,14 @@ kotlin {
106106
nodejs {
107107
testTask {
108108
useMocha {
109-
timeout = "5s"
109+
timeout = "15s"
110110
}
111111
}
112112
}
113113
browser {
114114
testTask {
115115
useMocha {
116-
timeout = "5s"
116+
timeout = "15s"
117117
}
118118
}
119119
}

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

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ expect fun runTest(test: suspend () -> Unit)
1212
class FirebaseDatabaseTest {
1313

1414
@Serializable
15-
data class DatabaseTest(val prop: String, val likes: Int = 0)
15+
data class DatabaseTest(val title: String, val likes: Int = 0)
1616

1717
@BeforeTest
1818
fun initializeFirebase() {
@@ -34,51 +34,56 @@ class FirebaseDatabaseTest {
3434
}
3535
}
3636

37-
@AfterTest
38-
fun tearDown() {
39-
Firebase
40-
.takeIf { Firebase.apps(context).isNotEmpty() }
41-
?.apply { app.delete() }
42-
}
43-
4437
@Test
4538
fun testBasicIncrementTransaction() = runTest {
46-
val data = DatabaseTest("post1", 2)
39+
val data = DatabaseTest("PostOne", 2)
4740
val userRef = Firebase.database.reference("users/user_1/post_id_1")
4841
setupDatabase(userRef, data, DatabaseTest.serializer())
4942

5043
// Check database before transaction
5144
val userDocBefore = userRef.valueEvents.first().value(DatabaseTest.serializer())
52-
assertEquals(data.prop, userDocBefore.prop)
45+
assertEquals(data.title, userDocBefore.title)
5346
assertEquals(data.likes, userDocBefore.likes)
5447

5548
// Run transaction
56-
userRef.runTransaction(DatabaseTest.serializer()) { DatabaseTest(data.prop, it.likes + 1) }
49+
val transactionSnapshot = userRef.runTransaction(DatabaseTest.serializer()) { DatabaseTest(data.title, it.likes + 1) }
50+
val userDocAfter = transactionSnapshot.value(DatabaseTest.serializer())
5751

5852
// Check the database after transaction
59-
val userDocAfter = userRef.valueEvents.first().value(DatabaseTest.serializer())
60-
assertEquals(data.prop, userDocAfter.prop)
61-
assertEquals(data.likes, userDocAfter.likes + 1)
53+
assertEquals(data.title, userDocAfter.title)
54+
assertEquals(data.likes + 1, userDocAfter.likes)
55+
56+
// cleanUp Firebase
57+
cleanUp()
6258
}
6359

6460
@Test
6561
fun testBasicDecrementTransaction() = runTest {
66-
val data = DatabaseTest("post2", 2)
62+
val data = DatabaseTest("PostTwo", 2)
6763
val userRef = Firebase.database.reference("users/user_1/post_id_2")
6864
setupDatabase(userRef, data, DatabaseTest.serializer())
6965

7066
// Check database before transaction
7167
val userDocBefore = userRef.valueEvents.first().value(DatabaseTest.serializer())
72-
assertEquals(data.prop, userDocBefore.prop)
68+
assertEquals(data.title, userDocBefore.title)
7369
assertEquals(data.likes, userDocBefore.likes)
7470

7571
// Run transaction
76-
userRef.runTransaction(DatabaseTest.serializer()) { DatabaseTest(data.prop, it.likes - 1) }
72+
val transactionSnapshot = userRef.runTransaction(DatabaseTest.serializer()) { DatabaseTest(data.title, it.likes - 1) }
73+
val userDocAfter = transactionSnapshot.value(DatabaseTest.serializer())
7774

7875
// Check the database after transaction
79-
val userDocAfter = userRef.valueEvents.first().value(DatabaseTest.serializer())
80-
assertEquals(data.prop, userDocAfter.prop)
81-
assertEquals(data.likes, userDocAfter.likes - 1)
76+
assertEquals(data.title, userDocAfter.title)
77+
assertEquals(data.likes - 1, userDocAfter.likes)
78+
79+
// cleanUp Firebase
80+
cleanUp()
81+
}
82+
83+
private fun cleanUp() {
84+
Firebase
85+
.takeIf { Firebase.apps(context).isNotEmpty() }
86+
?.apply { app.delete() }
8287
}
8388

8489
private suspend fun <T> setupDatabase(ref: DatabaseReference, data: T, strategy: SerializationStrategy<T>) {

0 commit comments

Comments
 (0)