Skip to content

Commit 06dcd35

Browse files
committed
fix: fix tests to work with new API only
1 parent 3ee8746 commit 06dcd35

File tree

6 files changed

+79
-41
lines changed

6 files changed

+79
-41
lines changed

protocol/communities_messenger_token_permissions_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -940,7 +940,7 @@ func (s *MessengerCommunitiesTokenPermissionsSuite) testViewChannelPermissions(v
940940
if viewersCanAddReactions {
941941
s.Require().NoError(err)
942942
s.Require().Len(response.EmojiReactions(), 1)
943-
s.Require().Equal(response.EmojiReactions()[0].Type, protobuf.EmojiReaction_THUMBS_UP)
943+
s.Require().Equal(response.EmojiReactions()[0].Emoji, "1f44d")
944944
} else {
945945
s.Require().Error(err)
946946
s.Require().Len(response.EmojiReactions(), 0)

protocol/messenger_emoji_reactions.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@ const maxEmojiReactionsPerMessage = 20
1919
func ConvertEmojiIDToString(emojiID protobuf.EmojiReaction_Type) string {
2020
switch emojiID {
2121
case protobuf.EmojiReaction_LOVE:
22-
return "❤️"
22+
return "2764"
2323
case protobuf.EmojiReaction_THUMBS_UP:
24-
return "👍"
24+
return "1f44d"
2525
case protobuf.EmojiReaction_THUMBS_DOWN:
26-
return "👎"
26+
return "1f44e"
2727
case protobuf.EmojiReaction_LAUGH:
28-
return "😂"
28+
return "1f602"
2929
case protobuf.EmojiReaction_SAD:
30-
return "😢"
30+
return "1f622"
3131
case protobuf.EmojiReaction_ANGRY:
32-
return "😠"
32+
return "1f620"
3333
}
3434

3535
return ""
@@ -57,7 +57,8 @@ func (m *Messenger) CheckMaxNumberOfEmojiReactionsPerMessage(chatID string, mess
5757
return nil
5858
}
5959

60-
func (m *Messenger) SendEmojiReaction(ctx context.Context, chatID, messageID string, emoji string) (*MessengerResponse, error) {
60+
// TODO remove emojiID once the client supports sending custom emojis
61+
func (m *Messenger) SendEmojiReaction(ctx context.Context, chatID string, messageID string, emojiID protobuf.EmojiReaction_Type, emoji string) (*MessengerResponse, error) {
6162
var response MessengerResponse
6263

6364
chat, ok := m.allChats.Load(chatID)
@@ -67,7 +68,10 @@ func (m *Messenger) SendEmojiReaction(ctx context.Context, chatID, messageID str
6768
clock, _ := chat.NextClockAndTimestamp(m.getTimesource())
6869

6970
if emoji == "" {
70-
return nil, errors.New("no emoji provided")
71+
emoji = ConvertEmojiIDToString(emojiID)
72+
if emoji == "" {
73+
return nil, errors.New("invalid emojiID")
74+
}
7175
}
7276

7377
// Validate that the emoji is valid

protocol/messenger_emoji_test.go

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func (s *MessengerEmojiSuite) TestSendEmoji() {
7373
emojiID := response.EmojiReactions()[0].ID()
7474

7575
// Try sending a non-emoji reaction
76-
_, err = bob.SendEmojiReaction(context.Background(), chat.ID, messageID, protobuf.EmojiReaction_UNKNOWN_EMOJI_REACTION_TYPE, "haha")
76+
_, err = bob.SendEmojiReaction(context.Background(), chat.ID, messageID, protobuf.EmojiReaction_UNKNOWN_EMOJI_REACTION_TYPE, "xD")
7777
s.Require().Error(err)
7878

7979
// Wait for the emoji to arrive to alice
@@ -86,8 +86,7 @@ func (s *MessengerEmojiSuite) TestSendEmoji() {
8686

8787
s.Require().Len(response.EmojiReactions(), 1)
8888
s.Require().Equal(response.EmojiReactions()[0].ID(), emojiID)
89-
s.Require().Equal(response.EmojiReactions()[0].Type, protobuf.EmojiReaction_SAD)
90-
s.Require().Equal(response.EmojiReactions()[0].Emoji, "😢")
89+
s.Require().Equal(response.EmojiReactions()[0].Emoji, "1f622")
9190

9291
// Retract the emoji
9392
response, err = bob.SendEmojiReactionRetraction(context.Background(), emojiID)
@@ -105,7 +104,6 @@ func (s *MessengerEmojiSuite) TestSendEmoji() {
105104

106105
s.Require().Len(response.EmojiReactions(), 1)
107106
s.Require().Equal(response.EmojiReactions()[0].ID(), emojiID)
108-
s.Require().Equal(response.EmojiReactions()[0].Type, protobuf.EmojiReaction_SAD)
109107
s.Require().True(response.EmojiReactions()[0].Retracted)
110108
}
111109

@@ -224,15 +222,36 @@ func (s *MessengerEmojiSuite) TestMaxEmojiReactionsPerMessage() {
224222
messageID := response.Messages()[0].ID
225223

226224
// Respond with the max amount of emojis
227-
emojis := []string{"😀", "🤓", "😄", "😁", "😆", "😅", "🤣", "😂", "🥹", "🙂", "🙃", "😉", "😊", "😇", "🥰", "😍", "🤩", "😘", "😗", "☺️"}
225+
emojis := []string{
226+
"1f600",
227+
"1f913",
228+
"1f604",
229+
"1f601",
230+
"1f606",
231+
"1f605",
232+
"1f923",
233+
"1f602",
234+
"1f979",
235+
"1f642",
236+
"1f643",
237+
"1f609",
238+
"1f60a",
239+
"1f607",
240+
"1f970",
241+
"1f60d",
242+
"1f929",
243+
"1f618",
244+
"1f617",
245+
"263a-fe0f",
246+
}
228247
for _, emoji := range emojis {
229248
response, err = bob.SendEmojiReaction(context.Background(), chat.ID, messageID, protobuf.EmojiReaction_UNKNOWN_EMOJI_REACTION_TYPE, emoji)
230249
s.Require().NoError(err)
231250
s.Require().Len(response.EmojiReactions(), 1)
232251
}
233252

234253
// Try sending one more (should fail)
235-
_, err = bob.SendEmojiReaction(context.Background(), chat.ID, messageID, protobuf.EmojiReaction_UNKNOWN_EMOJI_REACTION_TYPE, "😋")
254+
_, err = bob.SendEmojiReaction(context.Background(), chat.ID, messageID, protobuf.EmojiReaction_UNKNOWN_EMOJI_REACTION_TYPE, "1f60b")
236255
s.Require().Error(err)
237256
s.Require().Equal(ErrTooManyEmojiReactionsForMessage, err)
238257

@@ -249,7 +268,7 @@ func (s *MessengerEmojiSuite) TestMaxEmojiReactionsPerMessage() {
249268
&protobuf.EmojiReaction{
250269
MessageId: messageID,
251270
ChatId: chat.ID,
252-
Emoji: "😋",
271+
Emoji: "1f60b",
253272
Type: protobuf.EmojiReaction_UNKNOWN_EMOJI_REACTION_TYPE,
254273
Clock: 123,
255274
MessageType: protobuf.MessageType_PUBLIC_GROUP,
@@ -260,7 +279,7 @@ func (s *MessengerEmojiSuite) TestMaxEmojiReactionsPerMessage() {
260279
s.Require().Equal(ErrTooManyEmojiReactionsForMessage, err)
261280

262281
// Sending an existing emoji should work
263-
response, err = alice.SendEmojiReaction(context.Background(), chat.ID, messageID, protobuf.EmojiReaction_UNKNOWN_EMOJI_REACTION_TYPE, "😀")
282+
response, err = alice.SendEmojiReaction(context.Background(), chat.ID, messageID, protobuf.EmojiReaction_UNKNOWN_EMOJI_REACTION_TYPE, "1f600")
264283
s.Require().NoError(err)
265284
s.Require().Len(response.EmojiReactions(), 1)
266285

services/ext/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -979,7 +979,7 @@ func (api *PublicAPI) RegisteredForPushNotifications() (bool, error) {
979979

980980
// Emoji
981981
func (api *PublicAPI) SendEmojiReaction(ctx context.Context, chatID, messageID string, emoji string) (*protocol.MessengerResponse, error) {
982-
return api.service.messenger.SendEmojiReaction(ctx, chatID, messageID, emoji)
982+
return api.service.messenger.SendEmojiReaction(ctx, chatID, messageID, protobuf.EmojiReaction_UNKNOWN_EMOJI_REACTION_TYPE, emoji)
983983
}
984984

985985
func (api *PublicAPI) SendEmojiReactionRetraction(ctx context.Context, emojiReactionID string) (*protocol.MessengerResponse, error) {

tests-functional/clients/services/wakuext.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -620,14 +620,9 @@ def peer_id(self):
620620
response = self.rpc_request("peerID", params)
621621
return response
622622

623-
def send_emoji_reaction(self, receiver_chat_id: str, message_id: str, emoji_id: int):
624-
params = [receiver_chat_id, message_id, emoji_id]
625-
response = self.rpc_request(method="sendEmojiReaction", params=params)
626-
return response
627-
628-
def send_emoji_reaction_v2(self, chat_id: str, message_id: str, emoji: str):
623+
def send_emoji_reaction(self, chat_id: str, message_id: str, emoji: str):
629624
params = [chat_id, message_id, emoji]
630-
response = self.rpc_request(method="sendEmojiReactionV2", params=params)
625+
response = self.rpc_request(method="sendEmojiReaction", params=params)
631626
return response
632627

633628
def send_emoji_reaction_retraction(self, last_emoji_id: str):

tests-functional/tests/test_wakuext_message_reactions.py

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ def test_one_to_one_message_reactions(self, backend_new_profile, waku_light_clie
2323
message = self.get_message_by_content_type(response, content_type=MessageContentType.TEXT_PLAIN.value)[0]
2424
message_id, sender_chat_id = message["id"], message["chatId"]
2525
receiver_chat_id = self.receiver.wakuext_service.chats()[0]["id"]
26-
# Send emoji reaction (V1)
27-
response = self.receiver.wakuext_service.send_emoji_reaction(receiver_chat_id, message_id, 1)
26+
# Send emoji reaction
27+
response = self.receiver.wakuext_service.send_emoji_reaction(receiver_chat_id, message_id, "2764")
2828
# TODO: Add more assertions on response
2929
self.sender.find_signal_containing_pattern(
3030
SignalType.MESSAGES_NEW.value,
@@ -39,7 +39,7 @@ def test_one_to_one_message_reactions(self, backend_new_profile, waku_light_clie
3939
len(result) == 1,
4040
result[0]["chatId"] == receiver_chat_id,
4141
result[0]["messageId"] == message_id,
42-
result[0]["emoji"] == "❤️",
42+
result[0]["emoji"] == "2764",
4343
)
4444
)
4545
emoji_id = result[0]["id"]
@@ -58,8 +58,8 @@ def test_one_to_one_message_reactions(self, backend_new_profile, waku_light_clie
5858

5959
response = self.sender.wakuext_service.send_one_to_one_message(self.receiver.public_key, "test_message 1")
6060
message_1 = self.get_message_by_content_type(response, content_type=MessageContentType.TEXT_PLAIN.value)[0]
61-
# Send emoji reaction (V2)
62-
response = self.receiver.wakuext_service.send_emoji_reaction_v2(receiver_chat_id, message_1["id"], "🙂")
61+
# Send emoji reaction
62+
response = self.receiver.wakuext_service.send_emoji_reaction(receiver_chat_id, message_1["id"], "1f642")
6363
emoji_1_id = response["emojiReactions"][0]["id"]
6464
self.sender.find_signal_containing_pattern(
6565
SignalType.MESSAGES_NEW.value,
@@ -69,7 +69,7 @@ def test_one_to_one_message_reactions(self, backend_new_profile, waku_light_clie
6969

7070
response = self.receiver.wakuext_service.send_one_to_one_message(self.sender.public_key, "test_message 2")
7171
message_2 = self.get_message_by_content_type(response, content_type=MessageContentType.TEXT_PLAIN.value)[0]
72-
response = self.sender.wakuext_service.send_emoji_reaction_v2(sender_chat_id, message_2["id"], "🙁")
72+
response = self.sender.wakuext_service.send_emoji_reaction(sender_chat_id, message_2["id"], "1f641")
7373
emoji_2_id = response["emojiReactions"][0]["id"]
7474
self.receiver.find_signal_containing_pattern(
7575
SignalType.MESSAGES_NEW.value,
@@ -85,13 +85,13 @@ def test_one_to_one_message_reactions(self, backend_new_profile, waku_light_clie
8585
(
8686
item["chatId"] == sender_chat_id,
8787
item["messageId"] == message_2["id"],
88-
item["emoji"] == "🙁",
88+
item["emoji"] == "1f641",
8989
)
9090
) or all(
9191
(
9292
item["chatId"] == receiver_chat_id,
9393
item["messageId"] == message_1["id"],
94-
item["emoji"] == "🙂",
94+
item["emoji"] == "1f642",
9595
)
9696
)
9797

@@ -109,22 +109,42 @@ def test_limit_of_20_reactions(self, backend_new_profile, waku_light_client):
109109
receiver_chat_id = receiver.wakuext_service.chats()[0]["id"]
110110

111111
# Send 20 emojis
112-
emojis = ["😀", "🤓", "😄", "😁", "😆", "😅", "🤣", "😂", "🥹", "🙂", "🙃", "😉", "😊", "😇", "🥰", "😍", "🤩", "😘", "😗", "☺️"]
112+
emojis = [
113+
"1f600",
114+
"1f913",
115+
"1f604",
116+
"1f601",
117+
"1f606",
118+
"1f605",
119+
"1f923",
120+
"1f602",
121+
"1f97a",
122+
"1f642",
123+
"1f643",
124+
"1f609",
125+
"1f60a",
126+
"1f607",
127+
"1f970",
128+
"1f60d",
129+
"1f929",
130+
"1f618",
131+
"1f617",
132+
"263a",
133+
]
113134
last_emoji_id = None
114135
for emoji in emojis:
115-
response = sender.wakuext_service.send_emoji_reaction_v2(sender_chat_id, message_id, emoji)
136+
response = sender.wakuext_service.send_emoji_reaction(sender_chat_id, message_id, emoji)
116137
assert response["emojiReactions"][0]["emoji"] == emoji
117138
last_emoji_id = response["emojiReactions"][0]["id"]
118139

119140
# The 21st emoji sent should fail
120141
with pytest.raises(ApiResponseError, match=re.escape("too many emoji reactions for message")):
121-
_ = sender.wakuext_service.send_emoji_reaction_v2(sender_chat_id, message_id, "😋")
122-
142+
_ = sender.wakuext_service.send_emoji_reaction(sender_chat_id, message_id, "1f60b")
123143
# Test retract the 20th emoji and adding a new one
124144
response = sender.wakuext_service.send_emoji_reaction_retraction(last_emoji_id)
125145

126-
response = sender.wakuext_service.send_emoji_reaction_v2(sender_chat_id, message_id, "⚓️")
127-
assert response["emojiReactions"][0]["emoji"] == "⚓️"
146+
response = sender.wakuext_service.send_emoji_reaction(sender_chat_id, message_id, "2693")
147+
assert response["emojiReactions"][0]["emoji"] == "2693"
128148
new_emoji_id = response["emojiReactions"][0]["id"]
129149

130150
# Wait for receiver to get the reaction
@@ -135,9 +155,9 @@ def test_limit_of_20_reactions(self, backend_new_profile, waku_light_client):
135155
)
136156

137157
# Test receiver sending the SAME type of a previous reaction (should be allowed)
138-
response = receiver.wakuext_service.send_emoji_reaction_v2(receiver_chat_id, message_id, "⚓️")
158+
response = receiver.wakuext_service.send_emoji_reaction(receiver_chat_id, message_id, "2693")
139159
emoji_2_id = response["emojiReactions"][0]["id"]
140-
assert response["emojiReactions"][0]["emoji"] == "⚓️"
160+
assert response["emojiReactions"][0]["emoji"] == "2693"
141161

142162
sender.find_signal_containing_pattern(
143163
SignalType.MESSAGES_NEW.value,

0 commit comments

Comments
 (0)