@@ -31,7 +31,12 @@ expect fun runTest(test: suspend CoroutineScope.() -> Unit)
31
31
class FirebaseFirestoreTest {
32
32
33
33
@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
+ )
35
40
36
41
@BeforeTest
37
42
fun initializeFirebase () {
@@ -254,6 +259,36 @@ class FirebaseFirestoreTest {
254
259
assertEquals(5 , dataAfter.count)
255
260
}
256
261
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
+
257
292
private suspend fun setupFirestoreData () {
258
293
Firebase .firestore.collection(" testFirestoreQuerying" )
259
294
.document(" one" )
0 commit comments