Skip to content

Commit eed12fd

Browse files
committed
Update index when marking message as read
1 parent b91b618 commit eed12fd

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

tests/model/test_model.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,7 @@ def test_toggle_message_star_status(self, mocker, model, flags_before,
563563
model.client.update_message_flags.assert_called_once_with(request)
564564

565565
def test_mark_message_ids_as_read(self, model, mocker: Any) -> None:
566+
566567
mock_api_query = mocker.patch('zulipterminal.core.Controller'
567568
'.client.update_message_flags')
568569

@@ -572,6 +573,14 @@ def test_mark_message_ids_as_read(self, model, mocker: Any) -> None:
572573
{'flag': 'read', 'messages': [1, 2], 'op': 'add'},
573574
)
574575

576+
def test_mark_message_ids_as_read_index_updated(self, model,
577+
classified_unread_counts,
578+
mocker: Any) -> None:
579+
model.index['unread_msg_ids'] = classified_unread_counts[1]
580+
model.mark_message_ids_as_read([1, 2])
581+
expected_msg_ids = {3, 4, 5, 6, 7, 11, 12, 13, 101, 102}
582+
assert model.index['unread_msg_ids'] == expected_msg_ids
583+
575584
def test_mark_message_ids_as_read_empty_msg_list(self, model) -> None:
576585
assert model.mark_message_ids_as_read([]) is None
577586

zulipterminal/helper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ def index_messages(messages: List[Message],
357357
def classify_unread_counts(model: Any) -> Tuple[UnreadCounts, Set[int]]:
358358
# TODO: support group pms
359359
unread_msg_counts = model.initial_data['unread_msgs']
360-
unread_msg_ids: Set[int] = set()
360+
unread_msg_ids = set() # type: Set[int]
361361

362362
unread_counts = UnreadCounts(
363363
all_msg=0,

zulipterminal/model.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ def toggle_message_star_status(self, message: Message) -> None:
281281
def mark_message_ids_as_read(self, id_list: List[int]) -> None:
282282
if not id_list:
283283
return
284+
self.index['unread_msg_ids'].difference_update(id_list)
284285
self.client.update_message_flags({
285286
'messages': id_list,
286287
'flag': 'read',

0 commit comments

Comments
 (0)