Fix deletion of unconfirmed users with Webauthn set (#33186)
This commit is contained in:
		
							parent
							
								
									734f0dd182
								
							
						
					
					
						commit
						afcfc64007
					
				| @ -19,6 +19,7 @@ class Scheduler::UserCleanupScheduler | ||||
|     User.unconfirmed.where(confirmation_sent_at: ..UNCONFIRMED_ACCOUNTS_MAX_AGE_DAYS.days.ago).find_in_batches do |batch| | ||||
|       # We have to do it separately because of missing database constraints | ||||
|       AccountModerationNote.where(target_account_id: batch.map(&:account_id)).delete_all | ||||
|       WebauthnCredential.where(user_id: batch.map(&:id)).delete_all | ||||
|       Account.where(id: batch.map(&:account_id)).delete_all | ||||
|       User.where(id: batch.map(&:id)).delete_all | ||||
|     end | ||||
|  | ||||
| @ -9,6 +9,7 @@ RSpec.describe Scheduler::UserCleanupScheduler do | ||||
|   let!(:old_unconfirmed_user) { Fabricate(:user) } | ||||
|   let!(:confirmed_user)       { Fabricate(:user) } | ||||
|   let!(:moderation_note)      { Fabricate(:account_moderation_note, account: Fabricate(:account), target_account: old_unconfirmed_user.account) } | ||||
|   let!(:webauthn_credential)  { Fabricate(:webauthn_credential, user_id: old_unconfirmed_user.id) } | ||||
| 
 | ||||
|   describe '#perform' do | ||||
|     before do | ||||
| @ -26,6 +27,8 @@ RSpec.describe Scheduler::UserCleanupScheduler do | ||||
|         .from(true).to(false) | ||||
|       expect { moderation_note.reload } | ||||
|         .to raise_error(ActiveRecord::RecordNotFound) | ||||
|       expect { webauthn_credential.reload } | ||||
|         .to raise_error(ActiveRecord::RecordNotFound) | ||||
|       expect_preservation_of(new_unconfirmed_user) | ||||
|       expect_preservation_of(confirmed_user) | ||||
|     end | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user