diff --git a/app/models/services/facebook.rb b/app/models/services/facebook.rb index fbef23e8a..146fc882a 100644 --- a/app/models/services/facebook.rb +++ b/app/models/services/facebook.rb @@ -47,6 +47,6 @@ class Services::Facebook < Service su.attach_local_models su } - ServiceUser.import(data) + ServiceUser.import(data, :on_duplicate_key_update => [:updated_at, :contact_id, :person_id, :request_id, :invitation_id, :photo_url, :name]) end end diff --git a/spec/models/services/facebook_spec.rb b/spec/models/services/facebook_spec.rb index 86e246e59..c5257f2b4 100644 --- a/spec/models/services/facebook_spec.rb +++ b/spec/models/services/facebook_spec.rb @@ -71,6 +71,18 @@ JSON @service.save_friends @service.service_users.first.person.should == @user2.person end + + it 'overwrites local model information' do + @service.save_friends + su = @service.service_users.first + su.person.should == @user2.person + su.contact.should == nil + + connect_users_with_aspects(alice, @user2) + @service.save_friends + su.person.should == @user2.person + su.reload.contact.should == alice.contact_for(@user2.person) + end end describe '#finder' do