mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 15:06:26 +08:00
FIX: Reload only notifications when refreshing notification count (#8221)
Previously, we used to reload the whole User instance which discarded any changes made (for example setting 'unstage' to false).
This commit is contained in:
parent
1358312584
commit
3ad07aacfa
|
@ -218,7 +218,8 @@ class Notification < ActiveRecord::Base
|
|||
|
||||
def refresh_notification_count
|
||||
begin
|
||||
user.reload.publish_notifications_state
|
||||
user.notifications.reset
|
||||
user.publish_notifications_state
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
# happens when we delete a user
|
||||
end
|
||||
|
|
|
@ -1821,7 +1821,7 @@ describe User do
|
|||
let!(:staged_user) { Fabricate(:staged, email: 'staged@account.com', active: true, username: 'staged1', name: 'Stage Name') }
|
||||
let(:params) { { email: 'staged@account.com', active: true, username: 'unstaged1', name: 'Foo Bar' } }
|
||||
|
||||
it "correctyl unstages a user" do
|
||||
it "correctly unstages a user" do
|
||||
user = User.unstage(params)
|
||||
|
||||
expect(user.id).to eq(staged_user.id)
|
||||
|
@ -1829,6 +1829,7 @@ describe User do
|
|||
expect(user.name).to eq('Foo Bar')
|
||||
expect(user.active).to eq(false)
|
||||
expect(user.email).to eq('staged@account.com')
|
||||
expect(user.staged).to eq(false)
|
||||
end
|
||||
|
||||
it "returns nil when the user cannot be unstaged" do
|
||||
|
@ -1838,13 +1839,14 @@ describe User do
|
|||
end
|
||||
|
||||
it "removes all previous notifications during unstaging" do
|
||||
Fabricate(:notification, user: user)
|
||||
Fabricate(:private_message_notification, user: user)
|
||||
user.reload
|
||||
Fabricate(:notification, user: staged_user)
|
||||
Fabricate(:private_message_notification, user: staged_user)
|
||||
staged_user.reload
|
||||
|
||||
expect(user.total_unread_notifications).to eq(2)
|
||||
expect(staged_user.total_unread_notifications).to eq(2)
|
||||
user = User.unstage(params)
|
||||
expect(user.total_unread_notifications).to eq(0)
|
||||
expect(user.staged).to eq(false)
|
||||
end
|
||||
|
||||
it "triggers an event" do
|
||||
|
|
Loading…
Reference in New Issue
Block a user