1 # frozen_string_literal: true
6 class MutesControllerTest < ActionDispatch::IntegrationTest
8 # test all routes which lead to this controller
11 { :path => "/messages/1/mute", :method => :delete },
12 { :controller => "messages/mutes", :action => "destroy", :message_id => "1" }
16 def test_destroy_when_not_logged_in
17 sender_user = create(:user)
18 recipient_user = create(:user)
19 create(:user_mute, :owner => recipient_user, :subject => sender_user)
20 message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
22 delete message_mute_path(message)
23 assert_response :forbidden
26 def test_destroy_as_other_user
27 sender_user = create(:user)
28 recipient_user = create(:user)
29 create(:user_mute, :owner => recipient_user, :subject => sender_user)
30 message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
31 session_for(create(:user))
33 delete message_mute_path(message)
34 assert_response :not_found
35 assert_template "no_such_message"
38 def test_destroy_as_sender
39 sender_user = create(:user)
40 recipient_user = create(:user)
41 create(:user_mute, :owner => recipient_user, :subject => sender_user)
42 message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
43 session_for(sender_user)
45 delete message_mute_path(message)
46 assert_response :not_found
47 assert_template "no_such_message"
50 def test_destroy_as_recipient
51 sender_user = create(:user)
52 recipient_user = create(:user)
53 create(:user_mute, :owner => recipient_user, :subject => sender_user)
54 message = create(:message, :unread, :sender => sender_user, :recipient => recipient_user)
55 session_for(recipient_user)
57 delete message_mute_path(message)
58 assert_redirected_to messages_inbox_path
59 assert_not message.reload.muted
62 def test_destroy_on_missing_message
63 session_for(create(:user))
65 delete message_mute_path(99999)
66 assert_response :not_found
67 assert_template "no_such_message"