openstreetmap-website/test/controllers/user_mutes_controller_test.rb
2024-03-21 18:07:56 +03:00

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