Skip to content

Commit a135597

Browse files
authored
Merge pull request #290 from GitLiveApp/add-tests-for-firestore-array-queries
add tests for arrayUnion and arrayRemove in Firestore
2 parents c7bebbd + ed641f9 commit a135597

File tree

1 file changed

+36
-1
lines changed
  • firebase-firestore/src/commonTest/kotlin/dev/gitlive/firebase/firestore

1 file changed

+36
-1
lines changed

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

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,12 @@ expect fun runTest(test: suspend CoroutineScope.() -> Unit)
3131
class FirebaseFirestoreTest {
3232

3333
@Serializable
34-
data class FirestoreTest(val prop1: String, val time: Double = 0.0, val count: Int = 0)
34+
data class FirestoreTest(
35+
val prop1: String,
36+
val time: Double = 0.0,
37+
val count: Int = 0,
38+
val list: List<String> = emptyList(),
39+
)
3540

3641
@BeforeTest
3742
fun initializeFirebase() {
@@ -254,6 +259,36 @@ class FirebaseFirestoreTest {
254259
assertEquals(5, dataAfter.count)
255260
}
256261

262+
@Test
263+
fun testArrayUnion() = runTest {
264+
val doc = Firebase.firestore
265+
.collection("testFirestoreArrayUnion")
266+
.document("test1")
267+
268+
doc.set(FirestoreTest.serializer(), FirestoreTest("increment1", list = listOf("first")))
269+
val dataBefore = doc.get().data(FirestoreTest.serializer())
270+
assertEquals(listOf("first"), dataBefore.list)
271+
272+
doc.update("list" to FieldValue.arrayUnion("second"))
273+
val dataAfter = doc.get().data(FirestoreTest.serializer())
274+
assertEquals(listOf("first", "second"), dataAfter.list)
275+
}
276+
277+
@Test
278+
fun testArrayRemove() = runTest {
279+
val doc = Firebase.firestore
280+
.collection("testFirestoreArrayRemove")
281+
.document("test1")
282+
283+
doc.set(FirestoreTest.serializer(), FirestoreTest("increment1", list = listOf("first", "second")))
284+
val dataBefore = doc.get().data(FirestoreTest.serializer())
285+
assertEquals(listOf("first", "second"), dataBefore.list)
286+
287+
doc.update("list" to FieldValue.arrayRemove("second"))
288+
val dataAfter = doc.get().data(FirestoreTest.serializer())
289+
assertEquals(listOf("first"), dataAfter.list)
290+
}
291+
257292
private suspend fun setupFirestoreData() {
258293
Firebase.firestore.collection("testFirestoreQuerying")
259294
.document("one")

0 commit comments

Comments
 (0)