This commit is contained in:
Claire 2024-05-03 15:08:52 +00:00 committed by GitHub
commit b794732c23
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 43 additions and 1 deletions

View file

@ -266,7 +266,7 @@ class Status < ApplicationRecord
end
def reported?
@reported ||= Report.where(target_account: account).unresolved.exists?(['? = ANY(status_ids)', id])
@reported ||= Report.where(target_account: account).unresolved.exists?(['? = ANY(status_ids)', id]) || AccountWarning.where(target_account: account).exists?(['? = ANY(status_ids)', id.to_s])
end
def emojis

View file

@ -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) }