]> git.openstreetmap.org Git - rails.git/blob - test/system/user_muting_test.rb
Merge pull request #6394 from openstreetmap/dependabot/github_actions/ruby/setup...
[rails.git] / test / system / user_muting_test.rb
1 # frozen_string_literal: true
2
3 require "application_system_test_case"
4
5 class UserMutingTest < ApplicationSystemTestCase
6   # NB: loads helpers to verify mailer-related behaviour e.g. via assert_no_emails
7   include ActionMailer::TestHelper
8
9   test "users can mute and unmute other users" do
10     user = create(:user)
11     other_user = create(:user)
12     sign_in_as(user)
13
14     visit user_path(other_user)
15     click_on "Mute this User"
16     assert_content "You muted #{other_user.display_name}"
17
18     visit account_path
19     assert_content "Muted Users"
20     click_on "Muted Users"
21     assert_content "You have muted 1 User"
22     click_on "Unmute"
23
24     assert_content "You unmuted #{other_user.display_name}"
25     refute_content "Muted Users"
26     assert_current_path account_path
27   end
28
29   test "messages sent by muted users are set `muted` and do not cause notification emails" do
30     user = create(:user)
31     muted_user = create(:user)
32     create(:user_mute, :owner => user, :subject => muted_user)
33     sign_in_as(muted_user)
34
35     visit new_message_path(user)
36     fill_in "Subject", :with => "Hey Hey"
37     fill_in "Body", :with => "some message"
38
39     assert_no_emails do
40       click_on "Send"
41     end
42
43     message = Message.find_by(:sender => muted_user, :recipient => user)
44     assert_predicate message, :muted?
45   end
46 end