44 lines
1.3 KiB
Ruby
44 lines
1.3 KiB
Ruby
require "application_system_test_case"
|
|
|
|
class UserMutingTest < ApplicationSystemTestCase
|
|
# NB: loads helpers to verify mailer-related behaviour e.g. via assert_no_emails
|
|
include ActionMailer::TestHelper
|
|
|
|
test "users can mute and unmute other users" do
|
|
user = create(:user)
|
|
other_user = create(:user)
|
|
sign_in_as(user)
|
|
|
|
visit user_path(other_user)
|
|
click_link "Mute this User"
|
|
assert_content "You muted #{other_user.display_name}"
|
|
|
|
visit edit_account_path
|
|
assert_content "Muted Users"
|
|
click_link "Muted Users"
|
|
assert_content "You have muted 1 User"
|
|
click_link "Unmute"
|
|
|
|
assert_content "You unmuted #{other_user.display_name}"
|
|
refute_content "Muted Users"
|
|
assert_current_path edit_account_path
|
|
end
|
|
|
|
test "messages sent by muted users are set `muted` and do not cause notification emails" do
|
|
user = create(:user)
|
|
muted_user = create(:user)
|
|
create(:user_mute, :owner => user, :subject => muted_user)
|
|
sign_in_as(muted_user)
|
|
|
|
visit new_message_path(user)
|
|
fill_in "Subject", :with => "Hey Hey"
|
|
fill_in "Body", :with => "some message"
|
|
|
|
assert_no_emails do
|
|
click_button "Send"
|
|
end
|
|
|
|
message = Message.find_by(:sender => muted_user, :recipient => user)
|
|
assert_predicate message, :muted?
|
|
end
|
|
end
|