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?