@@ -1317,13 +1317,13 @@ impl FfiConversation {
1317
1317
Ok ( ( ) )
1318
1318
}
1319
1319
1320
- pub fn find_messages (
1320
+ pub async fn find_messages (
1321
1321
& self ,
1322
1322
opts : FfiListMessagesOptions ,
1323
1323
) -> Result < Vec < FfiMessage > , GenericError > {
1324
1324
let delivery_status = opts. delivery_status . map ( |status| status. into ( ) ) ;
1325
1325
let direction = opts. direction . map ( |dir| dir. into ( ) ) ;
1326
- let kind = match self . conversation_type ( ) ? {
1326
+ let kind = match self . conversation_type ( ) . await ? {
1327
1327
FfiConversationType :: Group => None ,
1328
1328
FfiConversationType :: Dm => Some ( GroupMessageKind :: Application ) ,
1329
1329
FfiConversationType :: Sync => None ,
@@ -1445,7 +1445,7 @@ impl FfiConversation {
1445
1445
1446
1446
pub fn group_image_url_square ( & self ) -> Result < String , GenericError > {
1447
1447
let provider = self . inner . mls_provider ( ) ?;
1448
- Ok ( self . inner . group_image_url_square ( provider) ?)
1448
+ Ok ( self . inner . group_image_url_square ( & provider) ?)
1449
1449
}
1450
1450
1451
1451
pub async fn update_group_description (
@@ -1461,7 +1461,7 @@ impl FfiConversation {
1461
1461
1462
1462
pub fn group_description ( & self ) -> Result < String , GenericError > {
1463
1463
let provider = self . inner . mls_provider ( ) ?;
1464
- Ok ( self . inner . group_description ( provider) ?)
1464
+ Ok ( self . inner . group_description ( & provider) ?)
1465
1465
}
1466
1466
1467
1467
pub async fn update_group_pinned_frame_url (
@@ -1593,9 +1593,9 @@ impl FfiConversation {
1593
1593
self . inner . added_by_inbox_id ( ) . map_err ( Into :: into)
1594
1594
}
1595
1595
1596
- pub fn group_metadata ( & self ) -> Result < Arc < FfiConversationMetadata > , GenericError > {
1596
+ pub async fn group_metadata ( & self ) -> Result < Arc < FfiConversationMetadata > , GenericError > {
1597
1597
let provider = self . inner . mls_provider ( ) ?;
1598
- let metadata = self . inner . metadata ( provider) ?;
1598
+ let metadata = self . inner . metadata ( & provider) . await ?;
1599
1599
Ok ( Arc :: new ( FfiConversationMetadata {
1600
1600
inner : Arc :: new ( metadata) ,
1601
1601
} ) )
@@ -1605,9 +1605,9 @@ impl FfiConversation {
1605
1605
self . inner . dm_inbox_id ( ) . map_err ( Into :: into)
1606
1606
}
1607
1607
1608
- pub fn conversation_type ( & self ) -> Result < FfiConversationType , GenericError > {
1608
+ pub async fn conversation_type ( & self ) -> Result < FfiConversationType , GenericError > {
1609
1609
let provider = self . inner . mls_provider ( ) ?;
1610
- let conversation_type = self . inner . conversation_type ( & provider) ?;
1610
+ let conversation_type = self . inner . conversation_type ( & provider) . await ?;
1611
1611
Ok ( conversation_type. into ( ) )
1612
1612
}
1613
1613
}
@@ -2104,6 +2104,9 @@ mod tests {
2104
2104
. await
2105
2105
. unwrap ( ) ;
2106
2106
2107
+ let conn = client. inner_client . context ( ) . store ( ) . conn ( ) . unwrap ( ) ;
2108
+ conn. register_triggers ( ) ;
2109
+
2107
2110
register_client ( & ffi_inbox_owner, & client) . await ;
2108
2111
client
2109
2112
}
@@ -2595,6 +2598,8 @@ mod tests {
2595
2598
async fn test_can_stream_group_messages_for_updates ( ) {
2596
2599
let alix = new_test_client ( ) . await ;
2597
2600
let bo = new_test_client ( ) . await ;
2601
+ let alix_provider = alix. inner_client . mls_provider ( ) . unwrap ( ) ;
2602
+ let bo_provider = bo. inner_client . mls_provider ( ) . unwrap ( ) ;
2598
2603
2599
2604
// Stream all group messages
2600
2605
let message_callbacks = Arc :: new ( RustStreamCallback :: default ( ) ) ;
@@ -2627,21 +2632,29 @@ mod tests {
2627
2632
. unwrap ( ) ;
2628
2633
let bo_group = & bo_groups[ 0 ] ;
2629
2634
bo_group. sync ( ) . await . unwrap ( ) ;
2635
+
2636
+ // alix published + processed group creation and name update
2637
+ assert_eq ! ( alix_provider. conn_ref( ) . intents_published( ) , 2 ) ;
2638
+ assert_eq ! ( alix_provider. conn_ref( ) . intents_deleted( ) , 2 ) ;
2639
+
2630
2640
bo_group
2631
2641
. update_group_name ( "Old Name2" . to_string ( ) )
2632
2642
. await
2633
2643
. unwrap ( ) ;
2634
2644
message_callbacks. wait_for_delivery ( None ) . await . unwrap ( ) ;
2645
+ assert_eq ! ( bo_provider. conn_ref( ) . intents_published( ) , 1 ) ;
2635
2646
2636
2647
alix_group. send ( b"Hello there" . to_vec ( ) ) . await . unwrap ( ) ;
2637
2648
message_callbacks. wait_for_delivery ( None ) . await . unwrap ( ) ;
2649
+ assert_eq ! ( alix_provider. conn_ref( ) . intents_published( ) , 3 ) ;
2638
2650
2639
2651
let dm = bo
2640
2652
. conversations ( )
2641
2653
. create_dm ( alix. account_address . clone ( ) )
2642
2654
. await
2643
2655
. unwrap ( ) ;
2644
2656
dm. send ( b"Hello again" . to_vec ( ) ) . await . unwrap ( ) ;
2657
+ assert_eq ! ( bo_provider. conn_ref( ) . intents_published( ) , 3 ) ;
2645
2658
message_callbacks. wait_for_delivery ( None ) . await . unwrap ( ) ;
2646
2659
2647
2660
// Uncomment the following lines to add more group name updates
@@ -2650,6 +2663,8 @@ mod tests {
2650
2663
. await
2651
2664
. unwrap ( ) ;
2652
2665
message_callbacks. wait_for_delivery ( None ) . await . unwrap ( ) ;
2666
+ message_callbacks. wait_for_delivery ( None ) . await . unwrap ( ) ;
2667
+ assert_eq ! ( bo_provider. conn_ref( ) . intents_published( ) , 4 ) ;
2653
2668
2654
2669
assert_eq ! ( message_callbacks. message_count( ) , 6 ) ;
2655
2670
@@ -2693,9 +2708,11 @@ mod tests {
2693
2708
2694
2709
let bo_messages1 = bo_group1
2695
2710
. find_messages ( FfiListMessagesOptions :: default ( ) )
2711
+ . await
2696
2712
. unwrap ( ) ;
2697
2713
let bo_messages5 = bo_group5
2698
2714
. find_messages ( FfiListMessagesOptions :: default ( ) )
2715
+ . await
2699
2716
. unwrap ( ) ;
2700
2717
assert_eq ! ( bo_messages1. len( ) , 0 ) ;
2701
2718
assert_eq ! ( bo_messages5. len( ) , 0 ) ;
@@ -2707,9 +2724,11 @@ mod tests {
2707
2724
2708
2725
let bo_messages1 = bo_group1
2709
2726
. find_messages ( FfiListMessagesOptions :: default ( ) )
2727
+ . await
2710
2728
. unwrap ( ) ;
2711
2729
let bo_messages5 = bo_group5
2712
2730
. find_messages ( FfiListMessagesOptions :: default ( ) )
2731
+ . await
2713
2732
. unwrap ( ) ;
2714
2733
assert_eq ! ( bo_messages1. len( ) , 1 ) ;
2715
2734
assert_eq ! ( bo_messages5. len( ) , 1 ) ;
@@ -2828,11 +2847,13 @@ mod tests {
2828
2847
alix_group. sync ( ) . await . unwrap ( ) ;
2829
2848
let alix_messages = alix_group
2830
2849
. find_messages ( FfiListMessagesOptions :: default ( ) )
2850
+ . await
2831
2851
. unwrap ( ) ;
2832
2852
2833
2853
bo_group. sync ( ) . await . unwrap ( ) ;
2834
2854
let bo_messages = bo_group
2835
2855
. find_messages ( FfiListMessagesOptions :: default ( ) )
2856
+ . await
2836
2857
. unwrap ( ) ;
2837
2858
assert_eq ! ( bo_messages. len( ) , 9 ) ;
2838
2859
assert_eq ! ( alix_messages. len( ) , 10 ) ;
@@ -3016,15 +3037,19 @@ mod tests {
3016
3037
// Get the message count for all the clients
3017
3038
let caro_messages = caro_group
3018
3039
. find_messages ( FfiListMessagesOptions :: default ( ) )
3040
+ . await
3019
3041
. unwrap ( ) ;
3020
3042
let alix_messages = alix_group
3021
3043
. find_messages ( FfiListMessagesOptions :: default ( ) )
3044
+ . await
3022
3045
. unwrap ( ) ;
3023
3046
let bo_messages = bo_group
3024
3047
. find_messages ( FfiListMessagesOptions :: default ( ) )
3048
+ . await
3025
3049
. unwrap ( ) ;
3026
3050
let bo2_messages = bo2_group
3027
3051
. find_messages ( FfiListMessagesOptions :: default ( ) )
3052
+ . await
3028
3053
. unwrap ( ) ;
3029
3054
3030
3055
assert_eq ! ( caro_messages. len( ) , 5 ) ;
@@ -3080,9 +3105,11 @@ mod tests {
3080
3105
3081
3106
let alix_messages = alix_group
3082
3107
. find_messages ( FfiListMessagesOptions :: default ( ) )
3108
+ . await
3083
3109
. unwrap ( ) ;
3084
3110
let bo_messages = bo_group
3085
3111
. find_messages ( FfiListMessagesOptions :: default ( ) )
3112
+ . await
3086
3113
. unwrap ( ) ;
3087
3114
3088
3115
let alix_can_see_bo_message = alix_messages
@@ -3189,6 +3216,7 @@ mod tests {
3189
3216
3190
3217
let bo_messages = bo_group
3191
3218
. find_messages ( FfiListMessagesOptions :: default ( ) )
3219
+ . await
3192
3220
. unwrap ( ) ;
3193
3221
assert_eq ! ( bo_messages. len( ) , 0 ) ;
3194
3222
@@ -3204,8 +3232,12 @@ mod tests {
3204
3232
3205
3233
let bo_messages = bo_group
3206
3234
. find_messages ( FfiListMessagesOptions :: default ( ) )
3235
+ . await
3207
3236
. unwrap ( ) ;
3208
- assert ! ( bo_messages. first( ) . unwrap( ) . kind == FfiConversationMessageKind :: MembershipChange ) ;
3237
+ assert_eq ! (
3238
+ bo_messages. first( ) . unwrap( ) . kind,
3239
+ FfiConversationMessageKind :: MembershipChange
3240
+ ) ;
3209
3241
assert_eq ! ( bo_messages. len( ) , 1 ) ;
3210
3242
3211
3243
let bo_members = bo_group. list_members ( ) . await . unwrap ( ) ;
@@ -3263,6 +3295,7 @@ mod tests {
3263
3295
3264
3296
let bo_messages1 = bo_group
3265
3297
. find_messages ( FfiListMessagesOptions :: default ( ) )
3298
+ . await
3266
3299
. unwrap ( ) ;
3267
3300
assert_eq ! ( bo_messages1. len( ) , first_msg_check) ;
3268
3301
@@ -3275,6 +3308,7 @@ mod tests {
3275
3308
3276
3309
let alix_messages = alix_group
3277
3310
. find_messages ( FfiListMessagesOptions :: default ( ) )
3311
+ . await
3278
3312
. unwrap ( ) ;
3279
3313
assert_eq ! ( alix_messages. len( ) , second_msg_check) ;
3280
3314
@@ -3284,6 +3318,7 @@ mod tests {
3284
3318
3285
3319
let bo_messages2 = bo_group
3286
3320
. find_messages ( FfiListMessagesOptions :: default ( ) )
3321
+ . await
3287
3322
. unwrap ( ) ;
3288
3323
assert_eq ! ( bo_messages2. len( ) , second_msg_check) ;
3289
3324
assert_eq ! ( message_callbacks. message_count( ) , second_msg_check as u32 ) ;
@@ -4529,15 +4564,19 @@ mod tests {
4529
4564
// Get messages for both participants in both conversations
4530
4565
let alix_dm_messages = alix_dm
4531
4566
. find_messages ( FfiListMessagesOptions :: default ( ) )
4567
+ . await
4532
4568
. unwrap ( ) ;
4533
4569
let bo_dm_messages = bo_dm
4534
4570
. find_messages ( FfiListMessagesOptions :: default ( ) )
4571
+ . await
4535
4572
. unwrap ( ) ;
4536
4573
let alix_group_messages = alix_group
4537
4574
. find_messages ( FfiListMessagesOptions :: default ( ) )
4575
+ . await
4538
4576
. unwrap ( ) ;
4539
4577
let bo_group_messages = bo_group
4540
4578
. find_messages ( FfiListMessagesOptions :: default ( ) )
4579
+ . await
4541
4580
. unwrap ( ) ;
4542
4581
4543
4582
// Verify DM messages
@@ -4658,13 +4697,15 @@ mod tests {
4658
4697
. await
4659
4698
. unwrap ( ) [ 0 ]
4660
4699
. find_messages ( FfiListMessagesOptions :: default ( ) )
4700
+ . await
4661
4701
. unwrap ( ) ;
4662
4702
let bo_dm_messages = client_b
4663
4703
. conversations ( )
4664
4704
. list ( FfiListConversationsOptions :: default ( ) )
4665
4705
. await
4666
4706
. unwrap ( ) [ 0 ]
4667
4707
. find_messages ( FfiListMessagesOptions :: default ( ) )
4708
+ . await
4668
4709
. unwrap ( ) ;
4669
4710
assert_eq ! ( alix_dm_messages[ 0 ] . content, "Hello in DM" . as_bytes( ) ) ;
4670
4711
assert_eq ! ( bo_dm_messages[ 0 ] . content, "Hello in DM" . as_bytes( ) ) ;
0 commit comments