Skip to content

Commit ab53f6f

Browse files
committed
Fix database tests
1 parent fb4bd1c commit ab53f6f

File tree

2 files changed

+12
-3
lines changed
  • firebase-database/src
    • commonTest/kotlin/dev.gitlive.firebase.database
    • jsMain/kotlin/dev/gitlive/firebase/database

2 files changed

+12
-3
lines changed

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ class FirebaseDatabaseTest {
4040

4141
@Test
4242
fun testSetValue() = runTest {
43+
awaitDatabaseConnection()
44+
4345
val testValue = "test"
4446
val testReference = Firebase.database.reference("testPath")
4547

@@ -52,9 +54,11 @@ class FirebaseDatabaseTest {
5254

5355
assertEquals(testValue, testReferenceValue)
5456
}
55-
57+
5658
@Test
5759
fun testChildCount() = runTest {
60+
awaitDatabaseConnection()
61+
5862
setupRealtimeData()
5963
val dataSnapshot = Firebase.database
6064
.reference("FirebaseRealtimeDatabaseTest")
@@ -65,6 +69,11 @@ class FirebaseDatabaseTest {
6569
assertEquals(3, firebaseDatabaseChildCount)
6670
}
6771

72+
private suspend fun awaitDatabaseConnection() {
73+
// workaround to avoid "Database not connected" exception with Firebase emulator
74+
Firebase.database.reference(".info/connected").valueEvents.first { it.value() }
75+
}
76+
6877
private suspend fun setupRealtimeData() {
6978
val firebaseDatabaseTestReference = Firebase.database
7079
.reference("FirebaseRealtimeDatabaseTest")
@@ -77,4 +86,4 @@ class FirebaseDatabaseTest {
7786
firebaseDatabaseTestReference.child("2").setValue(firebaseDatabaseChildTest2)
7887
firebaseDatabaseTestReference.child("3").setValue(firebaseDatabaseChildTest3)
7988
}
80-
}
89+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ actual class DataSnapshot internal constructor(val js: JsDataSnapshot) {
165165

166166
actual val children: Iterable<DataSnapshot> = rethrow {
167167
ArrayList<DataSnapshot>(js.size).also {
168-
js.forEach { snapshot -> it.add(DataSnapshot(snapshot)) }
168+
js.forEach { snapshot -> it.add(DataSnapshot(snapshot)); false /* don't cancel enumeration */ }
169169
}
170170
}
171171

0 commit comments

Comments
 (0)