@@ -237,6 +237,7 @@ def test_register_initial_desired_events(self, mocker, initial_data):
237
237
"message" ,
238
238
"update_message" ,
239
239
"reaction" ,
240
+ "submessage" ,
240
241
"subscription" ,
241
242
"typing" ,
242
243
"update_message_flags" ,
@@ -2913,6 +2914,235 @@ def test__handle_reaction_event_for_msg_in_index(
2913
2914
2914
2915
model ._update_rendered_view .assert_called_once_with (event_message_id )
2915
2916
2917
+ @pytest .mark .parametrize (
2918
+ "submessages, event, expected_updated_submessage" ,
2919
+ [
2920
+ case (
2921
+ [
2922
+ {
2923
+ "id" : 1 ,
2924
+ "message_id" : 1958326 ,
2925
+ "sender_id" : 27294 ,
2926
+ "msg_type" : "widget" ,
2927
+ "content" : (
2928
+ '{"widget_type": "todo", "extra_data": '
2929
+ '{"task_list_title": "Today\' s Work", "tasks": [{"task"'
2930
+ ': "Handle submessages events on ZT", "desc": ""}, {"task":'
2931
+ ' "Play ping pong", "desc": ""}]}}'
2932
+ ),
2933
+ }
2934
+ ],
2935
+ {
2936
+ "type" : "submessage" ,
2937
+ "msg_type" : "widget" ,
2938
+ "message_id" : 1958326 ,
2939
+ "submessage_id" : 1 ,
2940
+ "sender_id" : 27294 ,
2941
+ "content" : '{"type":"strike","key":"0,canned"}' ,
2942
+ "id" : 1 ,
2943
+ },
2944
+ [
2945
+ {
2946
+ "id" : 1 ,
2947
+ "message_id" : 1958326 ,
2948
+ "sender_id" : 27294 ,
2949
+ "msg_type" : "widget" ,
2950
+ "content" : (
2951
+ '{"widget_type": "todo", "extra_data": '
2952
+ '{"task_list_title": "Today\' s Work", "tasks": '
2953
+ '[{"task": "Handle submessages events on ZT", "desc": ""}, '
2954
+ '{"task": "Play ping pong", "desc": ""}]}}'
2955
+ ),
2956
+ },
2957
+ {
2958
+ "type" : "submessage" ,
2959
+ "msg_type" : "widget" ,
2960
+ "message_id" : 1958326 ,
2961
+ "submessage_id" : 1 ,
2962
+ "sender_id" : 27294 ,
2963
+ "content" : '{"type":"strike","key":"0,canned"}' ,
2964
+ },
2965
+ ],
2966
+ id = "submessage_strike_event_todo_widget" ,
2967
+ ),
2968
+ case (
2969
+ [
2970
+ {
2971
+ "id" : 1 ,
2972
+ "message_id" : 1958326 ,
2973
+ "sender_id" : 27294 ,
2974
+ "msg_type" : "widget" ,
2975
+ "content" : (
2976
+ '{"widget_type": "todo", "extra_data": '
2977
+ '{"task_list_title": "Today\' s Work", "tasks": [{"task": '
2978
+ '"Handle submessages events on ZT", "desc": ""}, {"task": '
2979
+ '"Play ping pong", "desc": ""}]}}'
2980
+ ),
2981
+ },
2982
+ {
2983
+ "id" : 12154 ,
2984
+ "message_id" : 1958326 ,
2985
+ "sender_id" : 27294 ,
2986
+ "msg_type" : "widget" ,
2987
+ "content" : '{"type":"strike","key":"0,canned"}' ,
2988
+ },
2989
+ ],
2990
+ {
2991
+ "type" : "submessage" ,
2992
+ "msg_type" : "widget" ,
2993
+ "message_id" : 1958326 ,
2994
+ "submessage_id" : 12185 ,
2995
+ "sender_id" : 27294 ,
2996
+ "content" : (
2997
+ '{"type":"new_task","key":2,"task":"Make a coffee",'
2998
+ '"desc":"","completed":false}'
2999
+ ),
3000
+ "id" : 0 ,
3001
+ },
3002
+ [
3003
+ {
3004
+ "id" : 1 ,
3005
+ "message_id" : 1958326 ,
3006
+ "sender_id" : 27294 ,
3007
+ "msg_type" : "widget" ,
3008
+ "content" : (
3009
+ '{"widget_type": "todo", "extra_data": '
3010
+ '{"task_list_title": "Today\' s Work", "tasks": [{"task": '
3011
+ '"Handle submessages events on ZT", "desc": ""}, {"task": '
3012
+ '"Play ping pong", "desc": ""}]}}'
3013
+ ),
3014
+ },
3015
+ {
3016
+ "id" : 12154 ,
3017
+ "message_id" : 1958326 ,
3018
+ "sender_id" : 27294 ,
3019
+ "msg_type" : "widget" ,
3020
+ "content" : '{"type":"strike","key":"0,canned"}' ,
3021
+ },
3022
+ {
3023
+ "type" : "submessage" ,
3024
+ "msg_type" : "widget" ,
3025
+ "message_id" : 1958326 ,
3026
+ "submessage_id" : 12185 ,
3027
+ "sender_id" : 27294 ,
3028
+ "content" : (
3029
+ '{"type":"new_task","key":2,"task":"Make a coffee",'
3030
+ '"desc":"","completed":false}'
3031
+ ),
3032
+ },
3033
+ ],
3034
+ id = "submessage_new_task_event_todo_widget" ,
3035
+ ),
3036
+ case (
3037
+ [
3038
+ {
3039
+ "id" : 12153 ,
3040
+ "message_id" : 1958326 ,
3041
+ "sender_id" : 27294 ,
3042
+ "msg_type" : "widget" ,
3043
+ "content" : (
3044
+ '{"widget_type": "todo", "extra_data": '
3045
+ '{"task_list_title": "Today\' s Work", "tasks": [{"task": '
3046
+ '"Handle submessages events on ZT", "desc": ""}, {"task": '
3047
+ '"Play ping pong", "desc": ""}]}}'
3048
+ ),
3049
+ },
3050
+ {
3051
+ "id" : 12154 ,
3052
+ "message_id" : 1958326 ,
3053
+ "sender_id" : 27294 ,
3054
+ "msg_type" : "widget" ,
3055
+ "content" : '{"type":"strike","key":"0,canned"}' ,
3056
+ },
3057
+ {
3058
+ "type" : "submessage" ,
3059
+ "msg_type" : "widget" ,
3060
+ "message_id" : 1958326 ,
3061
+ "submessage_id" : 12185 ,
3062
+ "sender_id" : 27294 ,
3063
+ "content" : (
3064
+ '{"type":"new_task","key":2,"task":"Make a coffee"'
3065
+ ',"desc":"","completed":false}'
3066
+ ),
3067
+ "id" : 0 ,
3068
+ },
3069
+ ],
3070
+ {
3071
+ "type" : "submessage" ,
3072
+ "msg_type" : "widget" ,
3073
+ "message_id" : 1958326 ,
3074
+ "submessage_id" : 12186 ,
3075
+ "sender_id" : 27294 ,
3076
+ "content" : (
3077
+ '{"type":"new_task_list_title","title":"Today\' s Work '
3078
+ '[Updated]"}'
3079
+ ),
3080
+ "id" : 11 ,
3081
+ },
3082
+ [
3083
+ {
3084
+ "id" : 12153 ,
3085
+ "message_id" : 1958326 ,
3086
+ "sender_id" : 27294 ,
3087
+ "msg_type" : "widget" ,
3088
+ "content" : (
3089
+ '{"widget_type": "todo", "extra_data": '
3090
+ '{"task_list_title": "Today\' s Work", "tasks": [{"task": '
3091
+ '"Handle submessages events on ZT", "desc": ""}, {"task": '
3092
+ '"Play ping pong", "desc": ""}]}}'
3093
+ ),
3094
+ },
3095
+ {
3096
+ "id" : 12154 ,
3097
+ "message_id" : 1958326 ,
3098
+ "sender_id" : 27294 ,
3099
+ "msg_type" : "widget" ,
3100
+ "content" : '{"type":"strike","key":"0,canned"}' ,
3101
+ },
3102
+ {
3103
+ "type" : "submessage" ,
3104
+ "msg_type" : "widget" ,
3105
+ "message_id" : 1958326 ,
3106
+ "submessage_id" : 12185 ,
3107
+ "sender_id" : 27294 ,
3108
+ "content" : (
3109
+ '{"type":"new_task","key":2,"task":"Make a coffee"'
3110
+ ',"desc":"","completed":false}'
3111
+ ),
3112
+ "id" : 0 ,
3113
+ },
3114
+ {
3115
+ "type" : "submessage" ,
3116
+ "msg_type" : "widget" ,
3117
+ "message_id" : 1958326 ,
3118
+ "submessage_id" : 12186 ,
3119
+ "sender_id" : 27294 ,
3120
+ "content" : (
3121
+ '{"type":"new_task_list_title",'
3122
+ '"title":"Today\' s Work [Updated]"}'
3123
+ ),
3124
+ },
3125
+ ],
3126
+ id = "submessage_new_task_list_title_event_todo_widget" ,
3127
+ ),
3128
+ ],
3129
+ )
3130
+ def test__handle_submessage_event (
3131
+ self ,
3132
+ mocker ,
3133
+ model ,
3134
+ submessages ,
3135
+ event ,
3136
+ expected_updated_submessage ,
3137
+ id = 1958326 ,
3138
+ ):
3139
+ model .index ["messages" ][id ]["submessages" ] = submessages
3140
+ model ._update_rendered_view = mocker .Mock ()
3141
+
3142
+ model ._handle_submessage_event (event )
3143
+
3144
+ assert model .index ["messages" ][id ]["submessages" ] == expected_updated_submessage
3145
+
2916
3146
@pytest .fixture (
2917
3147
params = [
2918
3148
("op" , 32 ), # At server feature level 32, event uses standard field
0 commit comments