From 1aac60bee3c5db641d2a98bc10dda45fa583f07c Mon Sep 17 00:00:00 2001 From: Raphael Sofaer <raphael@joindiaspora.com> Date: Wed, 3 Aug 2011 15:39:23 -0700 Subject: [PATCH] Make sure that not deleting the service_users doesn't leave them stale --- app/models/services/facebook.rb | 2 +- spec/models/services/facebook_spec.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/models/services/facebook.rb b/app/models/services/facebook.rb index fbef23e8a8..146fc882a8 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 86e246e592..c5257f2b45 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 -- GitLab