diff options
author | alpaca-tc <alpaca-tc@alpaca.tc> | 2017-05-05 06:44:39 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-05-04 23:44:39 +0200 |
commit | 74c8ca699c37ebdb0e3c6f0648f9f90a4f1f8f89 (patch) | |
tree | 74e9d9dfb474acd1ec7f74bb42177b8d0b396136 /spec/services | |
parent | eddb95b0126e523faeafbde544ff5df3a64e5b25 (diff) |
Delete records in smaller transaction (#2802)
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/suspend_account_service_spec.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/services/suspend_account_service_spec.rb b/spec/services/suspend_account_service_spec.rb new file mode 100644 index 000000000..1cb647e8d --- /dev/null +++ b/spec/services/suspend_account_service_spec.rb @@ -0,0 +1,33 @@ +require 'rails_helper' + +RSpec.describe SuspendAccountService do + describe '#call' do + subject do + -> { described_class.new.call(account) } + end + + let!(:account) { Fabricate(:account) } + let!(:status) { Fabricate(:status, account: account) } + let!(:media_attachment) { Fabricate(:media_attachment, account: account) } + let!(:notification) { Fabricate(:notification, account: account) } + let!(:favourite) { Fabricate(:favourite, account: account) } + let!(:active_relationship) { Fabricate(:follow, account: account) } + let!(:passive_relationship) { Fabricate(:follow, target_account: account) } + let!(:subscription) { Fabricate(:subscription, account: account) } + + it 'deletes associated records' do + is_expected.to change { + [ + account.statuses, + account.media_attachments, + account.stream_entries, + account.notifications, + account.favourites, + account.active_relationships, + account.passive_relationships, + account.subscriptions + ].map(&:count) + }.from([1, 1, 1, 1, 1, 1, 1, 1]).to([0, 0, 0, 0, 0, 0, 0, 0]) + end + end +end |