forked from mirrors/catstodon
Fix post deletion not being deferred when those are part of an account warning (#30163)
This commit is contained in:
parent
4f0d18168c
commit
e5062b7135
2 changed files with 43 additions and 1 deletions
|
@ -266,7 +266,7 @@ class Status < ApplicationRecord
|
|||
end
|
||||
|
||||
def reported?
|
||||
@reported ||= Report.where(target_account: account).unresolved.exists?(['? = ANY(status_ids)', id])
|
||||
@reported ||= account.targeted_reports.unresolved.exists?(['? = ANY(status_ids)', id]) || account.strikes.exists?(['? = ANY(status_ids)', id.to_s])
|
||||
end
|
||||
|
||||
def emojis
|
||||
|
|
|
@ -205,6 +205,48 @@ RSpec.describe Status do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#reported?' do
|
||||
context 'when the status is not reported' do
|
||||
it 'returns false' do
|
||||
expect(subject.reported?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the status is part of an open report' do
|
||||
before do
|
||||
Fabricate(:report, target_account: subject.account, status_ids: [subject.id])
|
||||
end
|
||||
|
||||
it 'returns true' do
|
||||
expect(subject.reported?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the status is part of a closed report with an account warning mentioning the account' do
|
||||
before do
|
||||
report = Fabricate(:report, target_account: subject.account, status_ids: [subject.id])
|
||||
report.resolve!(Fabricate(:account))
|
||||
Fabricate(:account_warning, target_account: subject.account, status_ids: [subject.id], report: report)
|
||||
end
|
||||
|
||||
it 'returns true' do
|
||||
expect(subject.reported?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the status is part of a closed report with an account warning not mentioning the account' do
|
||||
before do
|
||||
report = Fabricate(:report, target_account: subject.account, status_ids: [subject.id])
|
||||
report.resolve!(Fabricate(:account))
|
||||
Fabricate(:account_warning, target_account: subject.account, report: report)
|
||||
end
|
||||
|
||||
it 'returns false' do
|
||||
expect(subject.reported?).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.mutes_map' do
|
||||
subject { described_class.mutes_map([status.conversation.id], account) }
|
||||
|
||||
|
|
Loading…
Reference in a new issue