Fix bookmarks export when one bookmarked status is soft-deleted (#36576)
This commit is contained in:
@@ -12,7 +12,7 @@ class Export
|
|||||||
def to_bookmarks_csv
|
def to_bookmarks_csv
|
||||||
CSV.generate do |csv|
|
CSV.generate do |csv|
|
||||||
account.bookmarks.includes(:status).reorder(id: :desc).each do |bookmark|
|
account.bookmarks.includes(:status).reorder(id: :desc).each do |bookmark|
|
||||||
csv << [ActivityPub::TagManager.instance.uri_for(bookmark.status)]
|
csv << [ActivityPub::TagManager.instance.uri_for(bookmark.status)] if bookmark.status.present?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -14,15 +14,20 @@ RSpec.describe Export do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe '#to_bookmarks_csv' do
|
describe '#to_bookmarks_csv' do
|
||||||
before { Fabricate.times(2, :bookmark, account: account) }
|
let!(:bookmark) { Fabricate(:bookmark, account: account) }
|
||||||
|
|
||||||
let(:export) { CSV.parse(subject.to_bookmarks_csv) }
|
let(:export) { CSV.parse(subject.to_bookmarks_csv) }
|
||||||
|
let!(:second_bookmark) { Fabricate(:bookmark, account: account) }
|
||||||
|
let!(:bookmark_of_soft_deleted) { Fabricate(:bookmark, account: account) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
bookmark_of_soft_deleted.status.discard
|
||||||
|
end
|
||||||
|
|
||||||
it 'returns a csv of bookmarks' do
|
it 'returns a csv of bookmarks' do
|
||||||
expect(export)
|
expect(export)
|
||||||
.to contain_exactly(
|
.to contain_exactly(
|
||||||
include(/statuses/),
|
[ActivityPub::TagManager.instance.uri_for(bookmark.status)],
|
||||||
include(/statuses/)
|
[ActivityPub::TagManager.instance.uri_for(second_bookmark.status)]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user