62 lines
1.8 KiB
Ruby
62 lines
1.8 KiB
Ruby
require "test_helper"
|
|
|
|
class UserMutesControllerTest < ActionDispatch::IntegrationTest
|
|
def test_routes
|
|
assert_routing(
|
|
{ :path => "/user/username/mute", :method => :post },
|
|
{ :controller => "user_mutes", :action => "create", :display_name => "username" }
|
|
)
|
|
assert_routing(
|
|
{ :path => "/user/username/mute", :method => :delete },
|
|
{ :controller => "user_mutes", :action => "destroy", :display_name => "username" }
|
|
)
|
|
assert_routing(
|
|
{ :path => "/user_mutes", :method => :get },
|
|
{ :controller => "user_mutes", :action => "index" }
|
|
)
|
|
end
|
|
|
|
def test_index
|
|
user = create(:user)
|
|
muted_user = create(:user)
|
|
user.mutes.create(:subject => muted_user)
|
|
session_for(user)
|
|
|
|
get user_mutes_path
|
|
assert_match "You have muted 1 User", @response.body
|
|
assert_dom "tr a[href='#{user_path muted_user}']", :text => muted_user.display_name
|
|
end
|
|
|
|
def test_create
|
|
user = create(:user)
|
|
session_for(user)
|
|
|
|
assert_equal 0, user.muted_users.count
|
|
subject = create(:user, :display_name => "Bob")
|
|
post user_mute_path(subject)
|
|
assert_match "You muted Bob", flash[:notice]
|
|
|
|
assert_equal 1, user.muted_users.count
|
|
assert_equal subject, user.muted_users.first
|
|
|
|
post user_mute_path(subject)
|
|
assert_match "Bob could not be muted. Is already muted", flash[:error]
|
|
assert_equal 1, user.muted_users.count
|
|
end
|
|
|
|
def test_destroy
|
|
user = create(:user)
|
|
session_for(user)
|
|
|
|
subject = create(:user, :display_name => "Bob")
|
|
user.mutes.create(:subject => subject)
|
|
assert_equal 1, user.muted_users.count
|
|
|
|
delete user_mute_path(subject)
|
|
assert_match "You unmuted Bob", flash[:notice]
|
|
assert_equal 0, user.muted_users.count
|
|
|
|
delete user_mute_path(subject)
|
|
assert_response :not_found
|
|
end
|
|
end
|