mirror of
https://github.com/mastodon/mastodon.git
synced 2026-03-21 18:05:23 -05:00
Fix processing of object updates with duplicate hashtags (#37756)
This commit is contained in:
parent
02c9c71294
commit
d25ed12e56
|
|
@ -194,7 +194,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
|
|||
Tag.find_or_create_by_names([tag]).filter(&:valid?)
|
||||
rescue ActiveRecord::RecordInvalid
|
||||
[]
|
||||
end
|
||||
end.uniq
|
||||
|
||||
return unless @status.distributable?
|
||||
|
||||
|
|
|
|||
|
|
@ -259,6 +259,8 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
|
|||
{ type: 'Hashtag', name: 'foo' },
|
||||
{ type: 'Hashtag', name: 'bar' },
|
||||
{ type: 'Hashtag', name: '#2024' },
|
||||
{ type: 'Hashtag', name: 'Foo Bar' },
|
||||
{ type: 'Hashtag', name: 'FooBar' },
|
||||
],
|
||||
}
|
||||
end
|
||||
|
|
@ -270,7 +272,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService do
|
|||
|
||||
it 'updates tags and featured tags' do
|
||||
expect { subject.call(status, json, json) }
|
||||
.to change { status.tags.reload.pluck(:name) }.from(%w(test foo)).to(%w(foo bar))
|
||||
.to change { status.tags.reload.pluck(:name) }.from(contain_exactly('test', 'foo')).to(contain_exactly('foo', 'bar', 'foobar'))
|
||||
.and change { status.account.featured_tags.find_by(name: 'test').statuses_count }.by(-1)
|
||||
.and change { status.account.featured_tags.find_by(name: 'bar').statuses_count }.by(1)
|
||||
.and change { status.account.featured_tags.find_by(name: 'bar').last_status_at }.from(nil).to(be_present)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user