diff --git a/lib/diaspora/user/connecting.rb b/lib/diaspora/user/connecting.rb index d866f2e0b..ed7b7b3f5 100644 --- a/lib/diaspora/user/connecting.rb +++ b/lib/diaspora/user/connecting.rb @@ -20,6 +20,10 @@ module Diaspora end def accept_contact_request(request, aspect) + if notification = Notification.first(:target_id=>request.id) + notification.update_attributes(:unread=>false) + end + activate_contact(request.from, aspect) request.destroy request.reverse_for(self) diff --git a/spec/models/user/connecting_spec.rb b/spec/models/user/connecting_spec.rb index f229bc48c..d3c696ba5 100644 --- a/spec/models/user/connecting_spec.rb +++ b/spec/models/user/connecting_spec.rb @@ -105,6 +105,16 @@ describe Diaspora::UserModules::Connecting do user.accept_contact_request(@received_request, aspect) }.should change(Request, :count ).by(-1) end + + it "should mark the corresponding notification as 'read'" do + notification = Notification.create(:target_id => @received_request.id, + :kind => 'new_request', + :unread => true) + + Notification.first(:target_id=>@received_request.id).unread.should be_true + user.accept_contact_request(@received_request, aspect) + Notification.first(:target_id=>@received_request.id).unread.should be_false + end it 'should be able to ignore a pending contact request' do proc { user.ignore_contact_request(@received_request.id) }.should change(Request, :count ).by(-1)