]> git.openstreetmap.org Git - rails.git/blob - test/system/notification_preferences_test.rb
Merge remote-tracking branch 'upstream/pull/7084'
[rails.git] / test / system / notification_preferences_test.rb
1 # frozen_string_literal: true
2
3 require "application_system_test_case"
4
5 class NotificationPreferencesTest < ApplicationSystemTestCase
6   test "toggling preferences" do
7     ActionMailer::Base.deliveries.clear
8
9     user = create(:user)
10     sign_in_as(user)
11
12     visit notification_preferences_path
13
14     assert_selector ".notification_preferences input:checked", :count => 7
15
16     follow1 = create(:follow, :following => user)
17     perform_enqueued_jobs do
18       NewFollowerNotifier.with(:record => follow1).deliver
19     end
20     email = ActionMailer::Base.deliveries.first
21     assert_equal 1, email.to.count
22     assert_equal user.email, email.to.first
23     ActionMailer::Base.deliveries.clear
24
25     uncheck "user_notification_preferences_new_follower_email"
26     uncheck "user_notification_preferences_gpx_import_success_email"
27     click_on "Update Preferences"
28
29     assert_selector ".notification_preferences input:checked", :count => 5
30     assert_selector "input#user_notification_preferences_new_follower_email:not(checked)"
31
32     follow2 = create(:follow, :following => user)
33     perform_enqueued_jobs do
34       NewFollowerNotifier.with(:record => follow2).deliver
35     end
36     assert_empty ActionMailer::Base.deliveries
37   end
38 end