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
|
end
|
||||||
|
|
||||||
def reported?
|
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
|
end
|
||||||
|
|
||||||
def emojis
|
def emojis
|
||||||
|
|
|
@ -205,6 +205,48 @@ RSpec.describe Status do
|
||||||
end
|
end
|
||||||
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
|
describe '.mutes_map' do
|
||||||
subject { described_class.mutes_map([status.conversation.id], account) }
|
subject { described_class.mutes_map([status.conversation.id], account) }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue