Fix marking muted messages as read/unread
This commit is contained in:
parent
6bf3b453f9
commit
64dfb88ddf
2 changed files with 27 additions and 2 deletions
|
@ -117,7 +117,7 @@ class MessagesController < ApplicationController
|
|||
|
||||
# Set the message as being read or unread.
|
||||
def mark
|
||||
@message = current_user.messages.find(params[:message_id])
|
||||
@message = current_user.messages.unscope(:where => :muted).find(params[:message_id])
|
||||
if params[:mark] == "unread"
|
||||
message_read = false
|
||||
notice = t ".as_unread"
|
||||
|
@ -128,7 +128,11 @@ class MessagesController < ApplicationController
|
|||
@message.message_read = message_read
|
||||
if @message.save
|
||||
flash[:notice] = notice
|
||||
redirect_to inbox_messages_path, :status => :see_other
|
||||
if @message.muted?
|
||||
redirect_to muted_messages_path, :status => :see_other
|
||||
else
|
||||
redirect_to inbox_messages_path, :status => :see_other
|
||||
end
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
@title = t "messages.no_such_message.title"
|
||||
|
|
|
@ -423,6 +423,27 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
|
|||
assert_template "no_such_message"
|
||||
end
|
||||
|
||||
##
|
||||
# test the mark action for messages from muted users
|
||||
def test_mark_muted
|
||||
sender_user = create(:user)
|
||||
recipient_user = create(:user)
|
||||
create(:user_mute, :owner => recipient_user, :subject => sender_user)
|
||||
message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
|
||||
|
||||
session_for(recipient_user)
|
||||
|
||||
# Check that the marking a message read works
|
||||
post message_mark_path(message, :mark => "read")
|
||||
assert_redirected_to muted_messages_path
|
||||
assert Message.find(message.id).message_read
|
||||
|
||||
# Check that the marking a message unread works
|
||||
post message_mark_path(message, :mark => "unread")
|
||||
assert_redirected_to muted_messages_path
|
||||
assert_not Message.find(message.id).message_read
|
||||
end
|
||||
|
||||
##
|
||||
# test the destroy action
|
||||
def test_destroy
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue