1 # frozen_string_literal: true
3 require "application_system_test_case"
5 class UserMutingTest < ApplicationSystemTestCase
6 # NB: loads helpers to verify mailer-related behaviour e.g. via assert_no_emails
7 include ActionMailer::TestHelper
9 test "users can mute and unmute other users" do
11 other_user = create(:user)
14 visit user_path(other_user)
15 click_on "Mute this User"
16 assert_content "You muted #{other_user.display_name}"
19 assert_content "Muted Users"
20 click_on "Muted Users"
21 assert_content "You have muted 1 User"
24 assert_content "You unmuted #{other_user.display_name}"
25 refute_content "Muted Users"
26 assert_current_path account_path
29 test "messages sent by muted users are set `muted` and do not cause notification emails" do
31 muted_user = create(:user)
32 create(:user_mute, :owner => user, :subject => muted_user)
33 sign_in_as(muted_user)
35 visit new_message_path(user)
36 fill_in "Subject", :with => "Hey Hey"
37 fill_in "Body", :with => "some message"
43 message = Message.find_by(:sender => muted_user, :recipient => user)
44 assert_predicate message, :muted?