@@ -47,6 +47,39 @@ def test_set_count_stream(mocker, initial_unread_counts,
4747 assert controller .model .unread_counts == expected_unread_counts
4848
4949
50+ @pytest .mark .parametrize ('all_msg, all_pms, unread_pms, user_id' , [
51+ (4 , 3 , {200 : 2 , 201 : 1 }, 202 )
52+ ])
53+ @pytest .mark .parametrize (('new_count, id_list, expected_all_msg,'
54+ 'expected_all_pms, expected_unread_pms' ), [
55+ (- 1 , [10 , 13 ], 2 , 1 , {201 : 1 }),
56+ (- 1 , [10 , 13 , 11 ], 1 , 0 , {}),
57+ (- 1 , [], 4 , 3 , {200 : 2 , 201 : 1 }),
58+ (- 1 , [15 ], 4 , 3 , {200 : 2 , 201 : 1 }), # self-pm
59+ (1 , [16 , 10 ], 6 , 5 , {200 : 4 , 201 : 1 }),
60+ (1 , [], 4 , 3 , {200 : 2 , 201 : 1 }),
61+ # (1, [15], 4, 3, {200: 2, 201: 1}), # self-pm # FIXME
62+ ])
63+ def test_set_count_pms (mocker , initial_unread_counts , all_msg ,
64+ all_pms , unread_pms , user_id , id_list , new_count ,
65+ expected_unread_pms , expected_all_pms ,
66+ expected_all_msg , index_multiple_messages ):
67+ controller = mocker .patch ('zulipterminal.core.Controller.__init__' )
68+ controller .model .index = index_multiple_messages
69+ controller .model .user_id = user_id
70+
71+ unread_counts = deepcopy (dict (initial_unread_counts ,
72+ ** {'all_msg' : all_msg , 'all_pms' : all_pms ,
73+ 'unread_pms' : unread_pms }))
74+ expected_unread_counts = dict (initial_unread_counts ,
75+ ** {'all_msg' : expected_all_msg ,
76+ 'all_pms' : expected_all_pms ,
77+ 'unread_pms' : expected_unread_pms })
78+ controller .model .unread_counts = unread_counts
79+ set_count (id_list , controller , new_count )
80+ assert controller .model .unread_counts == expected_unread_counts
81+
82+
5083def test_index_messages_narrow_all_messages (mocker ,
5184 messages_successful_response ,
5285 index_all_messages ,
0 commit comments