FIX: Remove all notifications of staged user during sign-up

This commit is contained in:
Gerhard Schlager 2018-01-22 18:04:30 +01:00
parent d9515c37b3
commit b784c1eda4
2 changed files with 11 additions and 0 deletions

View File

@ -235,6 +235,7 @@ class User < ActiveRecord::Base
user.staged = false
user.active = false
user.custom_fields[FROM_STAGED] = true
user.notifications.destroy_all
DiscourseEvent.trigger(:user_unstaged, user)
end

View File

@ -1600,6 +1600,16 @@ describe User do
expect(User.unstage(email: 'no@account.com')).to be_nil
end
it "removes all previous notifications during unstaging" do
Fabricate(:notification, user: user)
Fabricate(:private_message_notification, user: user)
user.reload
expect(user.total_unread_notifications).to eq(2)
user = User.unstage(params)
expect(user.total_unread_notifications).to eq(0)
end
it "triggers an event" do
unstaged_user = nil
event = DiscourseEvent.track_events { unstaged_user = User.unstage(params) }.first