3
3
from steps .messenger import MessengerSteps
4
4
5
5
from clients .services .wakuext import SendPinMessagePayload
6
- from clients .signals import SignalType
7
6
8
7
9
8
@pytest .mark .usefixtures ("setup_two_unprivileged_nodes" )
10
9
@pytest .mark .rpc
11
- class TestChatMessages (MessengerSteps ):
12
-
13
- def test_chat_messages (self ):
14
- sent_texts , _ = self .send_multiple_one_to_one_messages (1 )
15
-
16
- sender_chat_id = self .receiver .public_key
17
- response = self .sender .wakuext_service .chat_messages (sender_chat_id )
18
-
19
- self .sender .verify_json_schema (response , method = "wakuext_chatMessages" )
20
-
21
- messages = response .get ("result" , {}).get ("messages" , [])
22
- assert len (messages ) == 1
23
- actual_text = messages [0 ].get ("text" , "" )
24
- assert actual_text == sent_texts [0 ]
25
-
26
- def test_chat_messages_with_pagination (self ):
27
- sent_texts , _ = self .send_multiple_one_to_one_messages (5 )
28
- sender_chat_id = self .receiver .public_key
29
-
30
- # Page 1
31
- chat_messages_res1 = self .sender .wakuext_service .chat_messages (sender_chat_id , cursor = "" , limit = 3 )
32
-
33
- cursor1 = chat_messages_res1 .get ("result" , {}).get ("cursor" , "" )
34
- messages_page1 = chat_messages_res1 .get ("result" , {}).get ("messages" , [])
35
- assert len (messages_page1 ) == 3
36
- assert messages_page1 [0 ].get ("text" , "" ) == sent_texts [4 ]
37
- assert messages_page1 [1 ].get ("text" , "" ) == sent_texts [3 ]
38
- assert messages_page1 [2 ].get ("text" , "" ) == sent_texts [2 ]
39
- assert cursor1 != ""
40
-
41
- # Page 2
42
- chat_messages_res2 = self .sender .wakuext_service .chat_messages (sender_chat_id , cursor = cursor1 , limit = 3 )
43
-
44
- cursor2 = chat_messages_res2 .get ("result" , {}).get ("cursor" , "" )
45
- messages_page2 = chat_messages_res2 .get ("result" , {}).get ("messages" , [])
46
- assert len (messages_page2 ) == 2
47
- assert messages_page2 [0 ].get ("text" , "" ) == sent_texts [1 ]
48
- assert messages_page2 [1 ].get ("text" , "" ) == sent_texts [0 ]
49
- assert cursor2 == ""
50
-
51
- def test_message_by_message_id (self ):
52
- sent_texts , responses = self .send_multiple_one_to_one_messages (1 )
53
-
54
- message_id = responses [0 ].get ("result" , {}).get ("messages" , [])[0 ].get ("id" , "" )
55
- response = self .sender .wakuext_service .message_by_message_id (message_id )
56
-
57
- self .sender .verify_json_schema (response , method = "wakuext_messageByMessageID" )
58
-
59
- actual_text = response .get ("result" , {}).get ("text" , "" )
60
- assert actual_text == sent_texts [0 ]
61
-
62
- @pytest .mark .parametrize (
63
- "searchTerm,caseSensitive,expectedCount" ,
64
- [
65
- ("test_message_1" , False , 1 ),
66
- ("TEST_MESSAGE_" , False , 3 ),
67
- # ("TEST_MESSAGE_", True, 0), # Skipped due to https://github.com/status-im/status-go/issues/6359
68
- ],
69
- )
70
- def test_all_messages_from_chat_which_match_term (self , searchTerm , caseSensitive , expectedCount ):
71
- self .send_multiple_one_to_one_messages (3 )
72
- sender_chat_id = self .receiver .public_key
73
-
74
- response = self .sender .wakuext_service .all_messages_from_chat_which_match_term (sender_chat_id , searchTerm , caseSensitive )
75
-
76
- self .sender .verify_json_schema (response , method = "wakuext_allMessagesFromChatWhichMatchTerm" )
77
-
78
- messages = response .get ("result" , {}).get ("messages" , [])
79
- assert len (messages ) == expectedCount
10
+ class TestInteractingWithChatMessages (MessengerSteps ):
80
11
81
12
def test_pinned_messages (self ):
82
13
sent_texts , responses = self .send_multiple_one_to_one_messages (1 )
@@ -94,7 +25,7 @@ def test_pinned_messages(self):
94
25
95
26
sender_chat_id = self .receiver .public_key
96
27
response = self .sender .wakuext_service .chat_pinned_messages (sender_chat_id )
97
- self .sender .verify_json_schema (response , method = "wakuext_schatPinnedMessages " )
28
+ self .sender .verify_json_schema (response , method = "wakuext_chatPinnedMessages " )
98
29
99
30
pinned_messages = response .get ("result" , {}).get ("pinnedMessages" , [])
100
31
assert len (pinned_messages ) == 1
@@ -226,43 +157,14 @@ def test_delete_message_for_me_and_sync(self):
226
157
227
158
# TODO: assert sync action
228
159
229
- def test_first_unseen_message (self ):
160
+ def test_update_message_outgoing_status (self ):
230
161
_ , responses = self .send_multiple_one_to_one_messages (1 )
231
- sender_chat_id = self .receiver .public_key
232
162
message_id = responses [0 ].get ("result" , {}).get ("messages" , [])[0 ].get ("id" , "" )
163
+ new_status = "delivered"
233
164
234
- response = self .sender .wakuext_service .mark_message_as_unread (sender_chat_id , message_id )
235
- self .sender .verify_json_schema (response , method = "wakuext_markMessageAsUnread" )
236
-
237
- response = self .sender .wakuext_service .first_unseen_message_id (sender_chat_id )
238
- self .sender .verify_json_schema (response , method = "wakuext_firstUnseenMessageID" )
165
+ response = self .sender .wakuext_service .update_message_outgoing_status (message_id , new_status )
166
+ self .sender .verify_json_schema (response , method = "wakuext_updateMessageOutgoingStatus" )
239
167
240
- result = response .get ("result" , "" )
241
- assert result == message_id
242
-
243
-
244
- @pytest .mark .usefixtures ("setup_two_unprivileged_nodes" )
245
- @pytest .mark .rpc
246
- class TestUserStatus (MessengerSteps ):
247
-
248
- def test_status_updates (self ):
249
- self .make_contacts ()
250
-
251
- statuses = [[1 , "text_1" ], [2 , "text_2" ], [3 , "text_3" ], [4 , "text_4" ]]
252
-
253
- for new_status , custom_text in statuses :
254
- response = self .sender .wakuext_service .set_user_status (new_status , custom_text )
255
- self .sender .verify_json_schema (response , method = "wakuext_setUserStatus" )
256
-
257
- self .receiver .find_signal_containing_pattern (
258
- SignalType .MESSAGES_NEW .value ,
259
- event_pattern = custom_text ,
260
- timeout = 10 ,
261
- )
262
-
263
- response = self .receiver .wakuext_service .status_updates ()
264
- self .sender .verify_json_schema (response , method = "wakuext_statusUpdates" )
265
-
266
- statusUpdate = response .get ("result" , {}).get ("statusUpdates" , [])[0 ]
267
- assert statusUpdate .get ("statusType" , - 1 ) == new_status
268
- assert statusUpdate .get ("text" , "" ) == custom_text
168
+ response = self .sender .wakuext_service .message_by_message_id (message_id )
169
+ outgoing_status = response .get ("result" , {}).get ("outgoingStatus" , "" )
170
+ assert outgoing_status == new_status
0 commit comments