Skip to content

Commit 30d6885

Browse files
authored
Fixes routing for deleted messages (#14)
1 parent 9a4e4ee commit 30d6885

File tree

2 files changed

+63
-6
lines changed

2 files changed

+63
-6
lines changed

jupyter_ai_router/router.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,10 @@ def _route_message(self, room_id: str, message: Message) -> None:
193193
room_id: The chat room ID
194194
message: The message to route
195195
"""
196+
197+
if message.deleted:
198+
return
199+
196200
first_word = get_first_word(message.body)
197201

198202
# Check if it's a slash command

jupyter_ai_router/tests/test_message_router.py

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -332,28 +332,81 @@ def test_message_metadata_preserved(self):
332332
room_id = "test-room"
333333
callback = Mock()
334334
self.router.observe_slash_cmd_msg(room_id, "help", callback)
335-
335+
336336
original_msg = Message(
337337
id="test-id",
338338
body="/help getting-started",
339-
sender="test-user",
339+
sender="test-user",
340340
time=123.456,
341341
mentions=["@someone"],
342342
attachments=["file1.txt"]
343343
)
344-
344+
345345
self.router._route_message(room_id, original_msg)
346-
346+
347347
call_args = callback.call_args_list[0][0]
348348
trimmed_msg = call_args[2]
349-
349+
350350
# Check that metadata is preserved
351351
assert trimmed_msg.id == original_msg.id
352352
assert trimmed_msg.sender == original_msg.sender
353353
assert trimmed_msg.time == original_msg.time
354354
assert trimmed_msg.mentions == original_msg.mentions
355355
assert trimmed_msg.attachments == original_msg.attachments
356-
356+
357357
# Only body should be different
358358
assert trimmed_msg.body == "getting-started"
359359
assert original_msg.body == "/help getting-started" # Original unchanged
360+
361+
def test_deleted_messages_not_routed(self):
362+
"""Test that deleted messages are not routed to any callbacks."""
363+
room_id = "test-room"
364+
slash_callback = Mock()
365+
msg_callback = Mock()
366+
367+
self.router.observe_slash_cmd_msg(room_id, "help", slash_callback)
368+
self.router.observe_chat_msg(room_id, msg_callback)
369+
370+
# Test deleted slash command message
371+
deleted_slash_msg = Message(
372+
id="1",
373+
body="/help topic",
374+
sender="user",
375+
time=123,
376+
deleted=True
377+
)
378+
self.router._route_message(room_id, deleted_slash_msg)
379+
slash_callback.assert_not_called()
380+
381+
# Test deleted regular message
382+
deleted_regular_msg = Message(
383+
id="2",
384+
body="Hello world",
385+
sender="user",
386+
time=124,
387+
deleted=True
388+
)
389+
self.router._route_message(room_id, deleted_regular_msg)
390+
msg_callback.assert_not_called()
391+
392+
# Verify non-deleted messages still work
393+
normal_slash_msg = Message(
394+
id="3",
395+
body="/help topic",
396+
sender="user",
397+
time=125,
398+
deleted=False
399+
)
400+
self.router._route_message(room_id, normal_slash_msg)
401+
slash_callback.assert_called_once()
402+
403+
normal_regular_msg = Message(
404+
id="4",
405+
body="Hello world",
406+
sender="user",
407+
time=126,
408+
deleted=False
409+
)
410+
self.router._route_message(room_id, normal_regular_msg)
411+
msg_callback.assert_called_once()
412+

0 commit comments

Comments
 (0)