From ef129737235832908e81f58da9133bbd8e9e7963 Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Tue, 10 Jul 2018 11:29:27 -0300 Subject: Allow to toggle notifications for issues due soon --- app/models/notification_setting.rb | 1 + changelogs/unreleased/issue_47709.yml | 5 ++++ .../show/user_manages_notifications_spec.rb | 32 ++++++++++++++++++++++ spec/models/notification_setting_spec.rb | 6 ++++ 4 files changed, 44 insertions(+) create mode 100644 changelogs/unreleased/issue_47709.yml diff --git a/app/models/notification_setting.rb b/app/models/notification_setting.rb index 9195408551f..1933c46ee44 100644 --- a/app/models/notification_setting.rb +++ b/app/models/notification_setting.rb @@ -32,6 +32,7 @@ class NotificationSetting < ActiveRecord::Base :reopen_issue, :close_issue, :reassign_issue, + :issue_due, :new_merge_request, :push_to_merge_request, :reopen_merge_request, diff --git a/changelogs/unreleased/issue_47709.yml b/changelogs/unreleased/issue_47709.yml new file mode 100644 index 00000000000..c3ef55fd692 --- /dev/null +++ b/changelogs/unreleased/issue_47709.yml @@ -0,0 +1,5 @@ +--- +title: 'Allow to toggle notifications for issues due soon' +merge_request: +author: +type: fixed diff --git a/spec/features/projects/show/user_manages_notifications_spec.rb b/spec/features/projects/show/user_manages_notifications_spec.rb index 31b105229be..546619e88ec 100644 --- a/spec/features/projects/show/user_manages_notifications_spec.rb +++ b/spec/features/projects/show/user_manages_notifications_spec.rb @@ -16,4 +16,36 @@ describe 'Projects > Show > User manages notifications', :js do expect(page).to have_content 'On mention' end end + + context 'custom notification settings' do + let(:email_events) do + [ + :new_note, + :new_issue, + :reopen_issue, + :close_issue, + :reassign_issue, + :issue_due, + :new_merge_request, + :push_to_merge_request, + :reopen_merge_request, + :close_merge_request, + :reassign_merge_request, + :merge_merge_request, + :failed_pipeline, + :success_pipeline + ] + end + + it 'shows notification settings checkbox' do + first('.notifications-btn').click + page.find('a[data-notification-level="custom"]').click + + page.within('.custom-notifications-form') do + email_events.each do |event_name| + expect(page).to have_selector("input[name='notification_setting[#{event_name}]']") + end + end + end + end end diff --git a/spec/models/notification_setting_spec.rb b/spec/models/notification_setting_spec.rb index d7c5f26ab67..77c475b9f52 100644 --- a/spec/models/notification_setting_spec.rb +++ b/spec/models/notification_setting_spec.rb @@ -93,4 +93,10 @@ RSpec.describe NotificationSetting do end end end + + context 'email events' do + it 'includes EXCLUDED_WATCHER_EVENTS in EMAIL_EVENTS' do + expect(described_class::EMAIL_EVENTS).to include(*described_class::EXCLUDED_WATCHER_EVENTS) + end + end end -- cgit v1.2.1