Add checkbox in UI to opt into receiving notifications about your activity
This commit is contained in:
parent
3e81bc7b1d
commit
530d0fda7b
3 changed files with 38 additions and 0 deletions
|
@ -25,6 +25,7 @@
|
|||
bindEvents() {
|
||||
$('.js-preferences-form').on('change.preference', 'input[type=radio]', this.submitForm);
|
||||
$('#user_notification_email').on('change', this.submitForm);
|
||||
$('#user_notified_of_own_activity').on('change', this.submitForm);
|
||||
$('.update-username').on('ajax:before', this.beforeUpdateUsername);
|
||||
$('.update-username').on('ajax:complete', this.afterUpdateUsername);
|
||||
$('.update-notifications').on('ajax:success', this.onUpdateNotifs);
|
||||
|
|
|
@ -34,6 +34,11 @@
|
|||
|
||||
.clearfix
|
||||
|
||||
= form_for @user, url: profile_notifications_path, method: :put do |f|
|
||||
%label{ for: 'user_notified_of_own_activity' }
|
||||
= f.check_box :notified_of_own_activity
|
||||
%span Receive notifications about your own activity
|
||||
|
||||
%hr
|
||||
%h5
|
||||
Groups (#{@group_notifications.count})
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'Profile > Notifications > User changes notified_of_own_activity setting', feature: true, js: true do
|
||||
let(:user) { create(:user) }
|
||||
|
||||
before do
|
||||
login_as(user)
|
||||
end
|
||||
|
||||
scenario 'User opts into receiving notifications about their own activity' do
|
||||
visit profile_notifications_path
|
||||
|
||||
expect(page).not_to have_checked_field('user[notified_of_own_activity]')
|
||||
|
||||
page.find('#user_notified_of_own_activity').set(true)
|
||||
|
||||
expect(page).to have_content('Notification settings saved')
|
||||
expect(page).to have_checked_field('user[notified_of_own_activity]')
|
||||
end
|
||||
|
||||
scenario 'User opts out of receiving notifications about their own activity' do
|
||||
user.update!(notified_of_own_activity: true)
|
||||
visit profile_notifications_path
|
||||
|
||||
expect(page).to have_checked_field('user[notified_of_own_activity]')
|
||||
|
||||
page.find('#user_notified_of_own_activity').set(false)
|
||||
|
||||
expect(page).to have_content('Notification settings saved')
|
||||
expect(page).not_to have_checked_field('user[notified_of_own_activity]')
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue