summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Artur <felipefac@gmail.com>2016-05-19 19:20:06 -0400
committerFelipe Artur <felipefac@gmail.com>2016-05-19 19:47:07 -0400
commit6fb9bf87c4f202dee9815c10cad9486a1077cc99 (patch)
tree95d66da109d5fe1f9095e0892e46c5bd01f43ebc
parentfc9844e8e1955359eae5b159069a90a993c667d1 (diff)
downloadgitlab-ce-issue_9013.tar.gz
Use the right default notification settings for non membersissue_9013
-rw-r--r--app/models/user.rb8
-rw-r--r--spec/controllers/projects_controller_spec.rb7
-rw-r--r--spec/services/merge_requests/update_service_spec.rb1
-rw-r--r--spec/services/notification_service_spec.rb19
4 files changed, 12 insertions, 23 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index 831fbcbb3f5..368a3f3cfba 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -777,13 +777,7 @@ class User < ActiveRecord::Base
end
def notification_settings_for(source)
- notification_setting = notification_settings.find_or_initialize_by(source: source)
-
- if source.is_a?(Project) && !source.team.member?(id) && !notification_setting.persisted?
- notification_setting.level = :disabled
- end
-
- notification_setting
+ notification_settings.find_or_initialize_by(source: source)
end
private
diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb
index 685fe9ffe0b..91b46c4d65c 100644
--- a/spec/controllers/projects_controller_spec.rb
+++ b/spec/controllers/projects_controller_spec.rb
@@ -24,20 +24,20 @@ describe ProjectsController do
context "and does not have notification setting" do
it "initializes notification as disabled" do
get :show, namespace_id: public_project.namespace.path, id: public_project.path
- expect(assigns(:notification_setting).level).to eq("disabled")
+ expect(assigns(:notification_setting).level).to eq("global")
end
end
context "and has notification setting" do
before do
setting = user.notification_settings_for(public_project)
- setting.level = :global
+ setting.level = :watch
setting.save
end
it "shows current notification setting" do
get :show, namespace_id: public_project.namespace.path, id: public_project.path
- expect(assigns(:notification_setting).level).to eq("global")
+ expect(assigns(:notification_setting).level).to eq("watch")
end
end
end
@@ -45,6 +45,7 @@ describe ProjectsController do
context "rendering default project view" do
render_views
+
it "renders the activity view" do
allow(controller).to receive(:current_user).and_return(user)
allow(user).to receive(:project_view).and_return('activity')
diff --git a/spec/services/merge_requests/update_service_spec.rb b/spec/services/merge_requests/update_service_spec.rb
index e872fc0eed2..213e8c2eb3a 100644
--- a/spec/services/merge_requests/update_service_spec.rb
+++ b/spec/services/merge_requests/update_service_spec.rb
@@ -17,7 +17,6 @@ describe MergeRequests::UpdateService, services: true do
before do
project.team << [user, :master]
project.team << [user2, :developer]
- project.team << [user3, :developer]
end
describe 'execute' do
diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb
index 4bf8fcde4dd..cef5e0d8659 100644
--- a/spec/services/notification_service_spec.rb
+++ b/spec/services/notification_service_spec.rb
@@ -35,7 +35,7 @@ describe NotificationService, services: true do
describe 'Notes' do
context 'issue note' do
- let(:project) { create(:empty_project, :internal) }
+ let(:project) { create(:empty_project, :private) }
let(:issue) { create(:issue, project: project, assignee: create(:user)) }
let(:mentioned_issue) { create(:issue, assignee: issue.assignee) }
let(:note) { create(:note_on_issue, noteable: issue, project_id: issue.project_id, note: '@mention referenced, @outsider also') }
@@ -52,8 +52,8 @@ describe NotificationService, services: true do
it do
add_users_with_subscription(note.project, issue)
- # Ensure create SentNotification by noteable = issue 7 times, not noteable = note
- expect(SentNotification).to receive(:record).with(issue, any_args).exactly(8).times
+ # Ensure create SentNotification by noteable = issue 6 times, not noteable = note
+ expect(SentNotification).to receive(:record).with(issue, any_args).exactly(7).times
ActionMailer::Base.deliveries.clear
@@ -66,7 +66,7 @@ describe NotificationService, services: true do
should_email(@subscriber)
should_email(@watcher_and_subscriber)
should_email(@subscribed_participant)
- should_email(@u_guest_watcher)
+ should_not_email(@u_guest_watcher)
should_not_email(note.author)
should_not_email(@u_participating)
should_not_email(@u_disabled)
@@ -101,7 +101,7 @@ describe NotificationService, services: true do
should_email(note.noteable.author)
should_email(note.noteable.assignee)
should_email(@u_mentioned)
- should_email(@u_guest_watcher)
+ should_not_email(@u_guest_watcher)
should_not_email(@u_watcher)
should_not_email(note.author)
should_not_email(@u_participating)
@@ -121,10 +121,7 @@ describe NotificationService, services: true do
let(:note) { create(:note_on_issue, noteable: confidential_issue, project: project, note: "#{author.to_reference} #{assignee.to_reference} #{non_member.to_reference} #{member.to_reference} #{admin.to_reference}") }
it 'filters out users that can not read the issue' do
- project.team << [admin, :master]
- project.team << [author, :developer]
project.team << [member, :developer]
- project.team << [assignee, :developer]
expect(SentNotification).to receive(:record).with(confidential_issue, any_args).exactly(4).times
@@ -148,7 +145,7 @@ describe NotificationService, services: true do
before do
build_team(note.project)
- note.project.team << [[note.author, note.noteable.author, note.noteable.assignee], :master]
+ note.project.team << [note.author, :master]
ActionMailer::Base.deliveries.clear
end
@@ -190,7 +187,7 @@ describe NotificationService, services: true do
before do
build_team(note.project)
- note.project.team << [[note.author, note.noteable.author], :master]
+ note.project.team << [note.author, :master]
ActionMailer::Base.deliveries.clear
end
@@ -269,7 +266,6 @@ describe NotificationService, services: true do
before do
build_team(issue.project)
add_users_with_subscription(issue.project, issue)
- project.team << [[issue.assignee, issue.author], :developer]
ActionMailer::Base.deliveries.clear
end
@@ -510,7 +506,6 @@ describe NotificationService, services: true do
before do
build_team(merge_request.target_project)
add_users_with_subscription(merge_request.target_project, merge_request)
- project.team << [merge_request.assignee, :developer]
ActionMailer::Base.deliveries.clear
end