diff --git a/plugins/chat/assets/javascripts/discourse/components/chat-live-pane.js b/plugins/chat/assets/javascripts/discourse/components/chat-live-pane.js index f9a8109b4b7..b5e367ecec6 100644 --- a/plugins/chat/assets/javascripts/discourse/components/chat-live-pane.js +++ b/plugins/chat/assets/javascripts/discourse/components/chat-live-pane.js @@ -675,13 +675,11 @@ export default class ChatLivePane extends Component { } handleReactionMessage(data) { - if (data.user.id !== this.currentUser.id) { - const message = this.args.channel.messagesManager.findMessage( - data.chat_message_id - ); - if (message) { - message.react(data.emoji, data.action, data.user, this.currentUser.id); - } + const message = this.args.channel.messagesManager.findMessage( + data.chat_message_id + ); + if (message) { + message.react(data.emoji, data.action, data.user, this.currentUser.id); } } diff --git a/plugins/chat/spec/system/react_to_message_spec.rb b/plugins/chat/spec/system/react_to_message_spec.rb index 569221b7d02..416f0a5028f 100644 --- a/plugins/chat/spec/system/react_to_message_spec.rb +++ b/plugins/chat/spec/system/react_to_message_spec.rb @@ -11,7 +11,6 @@ RSpec.describe "React to message", type: :system, js: true do before do chat_system_bootstrap category_channel_1.add(current_user) - sign_in(current_user) end context "when other user has reacted" do @@ -25,11 +24,13 @@ RSpec.describe "React to message", type: :system, js: true do shared_examples "inline reactions" do it "shows existing reactions under the message" do + sign_in(current_user) chat.visit_channel(category_channel_1) expect(channel).to have_reaction(message_1, reaction_1) end it "increments when clicking it" do + sign_in(current_user) chat.visit_channel(category_channel_1) channel.click_reaction(message_1, reaction_1) expect(channel).to have_reaction(message_1, reaction_1, 2) @@ -57,6 +58,7 @@ RSpec.describe "React to message", type: :system, js: true do context "when desktop" do context "when using inline reaction button" do it "adds a reaction" do + sign_in(current_user) chat.visit_channel(category_channel_1) channel.hover_message(message_1) find(".chat-message-react-btn").click @@ -65,19 +67,41 @@ RSpec.describe "React to message", type: :system, js: true do expect(channel).to have_reaction(message_1, reaction_1) end - xit "adds the reaction to the frequently used list" do - chat.visit_channel(category_channel_1) - channel.hover_message(message_1) - find(".chat-message-react-btn").click - find(".chat-emoji-picker [data-emoji=\"nerd_face\"]").click + context "when current user has multiple sessions" do + it "adds reaction on each session" do + reaction = OpenStruct.new(emoji: "nerd_face") - channel.hover_message(message_1) + using_session(:tab_1) do + sign_in(current_user) + chat.visit_channel(category_channel_1) + end + + using_session(:tab_2) do + sign_in(current_user) + chat.visit_channel(category_channel_1) + end + + using_session(:tab_1) do |session| + channel.hover_message(message_1) + find(".chat-message-react-btn").click + find(".chat-emoji-picker [data-emoji=\"#{reaction.emoji}\"]").click + + expect(channel).to have_reaction(message_1, reaction) + session.quit + end + + using_session(:tab_2) do |session| + expect(channel).to have_reaction(message_1, reaction) + session.quit + end + end end end context "when using message actions menu" do context "when using the emoji picker" do it "adds a reaction" do + sign_in(current_user) chat.visit_channel(category_channel_1) channel.hover_message(message_1) find(".chat-message-actions .react-btn").click @@ -85,19 +109,11 @@ RSpec.describe "React to message", type: :system, js: true do expect(channel).to have_reaction(message_1, reaction_1) end - - xit "adds the reaction to the frequently used list" do - chat.visit_channel(category_channel_1) - channel.hover_message(message_1) - find(".chat-message-actions .react-btn").click - find(".chat-emoji-picker [data-emoji=\"nerd_face\"]").click - - channel.hover_message(message_1) - end end context "when using frequent reactions" do it "adds a reaction" do + sign_in(current_user) chat.visit_channel(category_channel_1) channel.hover_message(message_1) find(".chat-message-actions [data-emoji-name=\"+1\"").click @@ -122,11 +138,13 @@ RSpec.describe "React to message", type: :system, js: true do shared_examples "inline reactions" do it "shows existing reactions under the message" do + sign_in(current_user) chat.visit_channel(category_channel_1) expect(channel).to have_reaction(message_1, reaction_1) end it "removes it when clicking it" do + sign_in(current_user) chat.visit_channel(category_channel_1) channel.click_reaction(message_1, reaction_1) expect(channel).to have_no_reactions(message_1) @@ -153,6 +171,7 @@ RSpec.describe "React to message", type: :system, js: true do end it "doesn’t create duplicate reactions" do + sign_in(current_user) chat.visit_channel(category_channel_1) Chat::Publisher.publish_reaction!(category_channel_1, message_1, "add", user_1, "heart")