From a61d5739d48ffdef369a3a4918e997773d1f0448 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Mon, 14 Aug 2017 04:41:19 +0200 Subject: [PATCH] Re-add disconnect_contacts in AccountDeleter --- lib/account_deleter.rb | 5 +++++ spec/lib/account_deleter_spec.rb | 11 ++++++++++- spec/support/data_generator.rb | 3 ++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/account_deleter.rb b/lib/account_deleter.rb index 8172510a0..73787a702 100644 --- a/lib/account_deleter.rb +++ b/lib/account_deleter.rb @@ -34,6 +34,7 @@ class AccountDeleter #user deletion methods remove_share_visibilities_on_contacts_posts delete_standard_user_associations + disconnect_contacts tombstone_user end @@ -68,6 +69,10 @@ class AccountDeleter end end + def disconnect_contacts + user.contacts.reload.destroy_all + end + # Currently this would get deleted due to the db foreign key constrainsts, # but we'll keep this method here for completeness def remove_share_visibilities_on_contacts_posts diff --git a/spec/lib/account_deleter_spec.rb b/spec/lib/account_deleter_spec.rb index 46d431d72..6546ff6c3 100644 --- a/spec/lib/account_deleter_spec.rb +++ b/spec/lib/account_deleter_spec.rb @@ -17,7 +17,7 @@ describe AccountDeleter do user_removal_methods = %i[ delete_standard_user_associations remove_share_visibilities_on_contacts_posts - tombstone_user + disconnect_contacts tombstone_user ] person_removal_methods = %i[ @@ -108,6 +108,15 @@ describe AccountDeleter do end end + context "user associations" do + describe "#disconnect_contacts" do + it "deletes all of user's contacts" do + expect(bob.contacts).to receive(:destroy_all) + @account_deletion.disconnect_contacts + end + end + end + context 'person associations' do describe '#delete_contacts_of_me' do it 'deletes all the local contact objects where deleted account is the person' do diff --git a/spec/support/data_generator.rb b/spec/support/data_generator.rb index 881d54182..7a3541f09 100644 --- a/spec/support/data_generator.rb +++ b/spec/support/data_generator.rb @@ -60,7 +60,8 @@ class DataGenerator end def conversations - a_friend = person.contacts.first.user.person + a_friend = FactoryGirl.create(:contact, person: person).user.person + FactoryGirl.create(:contact, user: user, person: a_friend) unless user.nil? create_conversation_with_message(a_friend, person, "Subject", "Hey #{person.name}") create_conversation_with_message(person, a_friend, "Subject", "Hey #{a_friend.name}") end