diff --git a/Changelog.md b/Changelog.md index 4d7839848..b411f0bd5 100644 --- a/Changelog.md +++ b/Changelog.md @@ -40,6 +40,7 @@ * Fix error with invite link box shows on search results page even if invites have been turned off. [#3708](https://github.com/diaspora/diaspora/pull/3708) * Fix misconfiguration of Devise to allow the session to be remembered. [#3472](https://github.com/diaspora/diaspora/issues/3472) * Fix problem with show reshares_count in stream. [#3700](https://github.com/diaspora/diaspora/pull/3700) +* Fix error with notifications count in mobile. [#3721](https://github.com/diaspora/diaspora/pull/3721) ## Gem updates diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 886ccc4bd..d6435b1c4 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -105,7 +105,7 @@ class PostsController < ApplicationController end def mark_corresponding_notification_read - if notification = Notification.where(:recipient_id => current_user.id, :target_id => @post.id).first + if notification = Notification.where(:recipient_id => current_user.id, :target_id => @post.id, :unread => true).first notification.unread = false notification.save end diff --git a/spec/controllers/posts_controller_spec.rb b/spec/controllers/posts_controller_spec.rb index 62b216956..de647d540 100644 --- a/spec/controllers/posts_controller_spec.rb +++ b/spec/controllers/posts_controller_spec.rb @@ -41,12 +41,14 @@ describe PostsController do end it 'marks a corresponding notification as read' do - note = Notification.create(:recipient => alice, :target => @message, :unread => true) + # Ensure that it doesn't mark a read notification as read + FactoryGirl.create(:notification, :recipient => alice, :target => @message, :unread => false) + note = FactoryGirl.create(:notification, :recipient => alice, :target => @message, :unread => true) - lambda{ + expect { get :show, :id => @message.id note.reload - }.should change(note, :unread).from(true).to(false) + }.to change(note, :unread).from(true).to(false) end it 'succeeds with a AS/photo' do