Extract `COMMENT_SIZE_LIMIT` constant in `AP::Activity::Flag` class (#30637)

main-rebase-security-fix
Matt Jankowski 2024-06-10 11:23:55 -04:00 committed by GitHub
parent 9bf2e2eda0
commit 9cc4040308
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 6 deletions

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class ActivityPub::Activity::Flag < ActivityPub::Activity
COMMENT_SIZE_LIMIT = 5000
def perform
return if skip_reports?
@ -38,6 +40,6 @@ class ActivityPub::Activity::Flag < ActivityPub::Activity
end
def report_comment
(@json['content'] || '')[0...5000]
(@json['content'] || '')[0...COMMENT_SIZE_LIMIT]
end
end

View File

@ -54,7 +54,7 @@ RSpec.describe ActivityPub::Activity::Flag do
}.with_indifferent_access, sender)
end
let(:long_comment) { Faker::Lorem.characters(number: 6000) }
let(:long_comment) { 'a' * described_class::COMMENT_SIZE_LIMIT * 2 }
before do
subject.perform
@ -63,10 +63,12 @@ RSpec.describe ActivityPub::Activity::Flag do
it 'creates a report but with a truncated comment' do
report = Report.find_by(account: sender, target_account: flagged)
expect(report).to_not be_nil
expect(report.comment.length).to eq 5000
expect(report.comment).to eq long_comment[0...5000]
expect(report.status_ids).to eq [status.id]
expect(report)
.to be_present
.and have_attributes(status_ids: [status.id])
expect(report.comment)
.to have_attributes(length: described_class::COMMENT_SIZE_LIMIT)
.and eq(long_comment[0...described_class::COMMENT_SIZE_LIMIT])
end
end