Fix updating collection items when position is unknown (#38962)
This commit is contained in:
parent
e7ed8bb682
commit
b1f7c9641f
@ -16,10 +16,10 @@ class ActivityPub::ProcessFeaturedItemService
|
||||
with_redis_lock("collection_item:#{@item_json['id']}") do
|
||||
@collection_item = existing_item || pre_approved_item || new_item
|
||||
|
||||
@collection_item.position = position unless position.nil?
|
||||
@collection_item.update!(
|
||||
uri: @item_json['id'],
|
||||
object_uri: value_or_id(@item_json['featuredObject']),
|
||||
position:
|
||||
object_uri: value_or_id(@item_json['featuredObject'])
|
||||
)
|
||||
|
||||
@approval_uri = @item_json['featureAuthorization']
|
||||
|
||||
@ -72,15 +72,25 @@ RSpec.describe ActivityPub::ProcessFeaturedItemService do
|
||||
end
|
||||
end
|
||||
|
||||
context 'when item exists at a different position' do
|
||||
context 'when item exists' do
|
||||
let!(:collection_item) do
|
||||
Fabricate(:collection_item, collection:, uri: featured_item_json['id'], position: 2)
|
||||
end
|
||||
|
||||
it 'updates the position' do
|
||||
expect { subject.call(collection, object, position:) }.to_not change(collection.collection_items, :count)
|
||||
context 'when no position is given' do
|
||||
it 'does not change the position' do
|
||||
expect { subject.call(collection, object) }.to_not change(collection.collection_items, :count)
|
||||
|
||||
expect(collection_item.reload.position).to eq 3
|
||||
expect(collection_item.reload.position).to eq 2
|
||||
end
|
||||
end
|
||||
|
||||
context 'when a different position is given' do
|
||||
it 'updates the position' do
|
||||
expect { subject.call(collection, object, position:) }.to_not change(collection.collection_items, :count)
|
||||
|
||||
expect(collection_item.reload.position).to eq 3
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user