Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `app/lib/formatter.rb`: Upstream completely refactored the formatting code and removed that file, while glitch-soc had code for Markdown and HTML toots. Took upstream code, glitch-soc changes will be re-implemented on top of the refactored classes in a later commit. - `app/models/status.rb`: Upstream refactored status edit handling and moved code to `app/models/concerns/status_snapshot_concern.rb`. Applied glitch-soc's changes to that file. - `app/serializers/activitypub/note_serializer.rb`: Not really a conflict, just a line added too close to one modified by glitch-soc. Applied upstream changes while keeping the glitch-soc-modified one. - `app/services/update_status_service.rb`: Not really a conflict, upstream modified a line adjacent to one added by glitch-soc. Applied upstream changes while keeping the glitch-soc line. - `app/views/statuses/_simple_status.html.haml`: Upstream refactored formatting, glitch-soc changed the markup slightly. Applied upstream changes. - `spec/lib/formatter_spec.rb`: Upstream completely refactored the formatting code and removed that file, while glitch-soc had code for Markdown and HTML toots. Took upstream code, glitch-soc changes will be re-implemented on top of the refactored classes in a later commit.
This commit is contained in:
@@ -46,6 +46,29 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
|
||||
expect(status.reload.spoiler_text).to eq 'Show more'
|
||||
end
|
||||
|
||||
context 'with no changes at all' do
|
||||
let(:payload) do
|
||||
{
|
||||
'@context': 'https://www.w3.org/ns/activitystreams',
|
||||
id: 'foo',
|
||||
type: 'Note',
|
||||
content: 'Hello world',
|
||||
}
|
||||
end
|
||||
|
||||
before do
|
||||
subject.call(status, json)
|
||||
end
|
||||
|
||||
it 'does not create any edits' do
|
||||
expect(status.reload.edits).to be_empty
|
||||
end
|
||||
|
||||
it 'does not mark status as edited' do
|
||||
expect(status.edited?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
context 'with no changes and originally with no ordered_media_attachment_ids' do
|
||||
let(:payload) do
|
||||
{
|
||||
@@ -61,8 +84,12 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
|
||||
subject.call(status, json)
|
||||
end
|
||||
|
||||
it 'does not record an update' do
|
||||
expect(status.reload.edited?).to be false
|
||||
it 'does not create any edits' do
|
||||
expect(status.reload.edits).to be_empty
|
||||
end
|
||||
|
||||
it 'does not mark status as edited' do
|
||||
expect(status.edited?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -3,6 +3,23 @@ require 'rails_helper'
|
||||
RSpec.describe UpdateStatusService, type: :service do
|
||||
subject { described_class.new }
|
||||
|
||||
context 'when nothing changes' do
|
||||
let!(:status) { Fabricate(:status, text: 'Foo', language: 'en') }
|
||||
|
||||
before do
|
||||
allow(ActivityPub::DistributionWorker).to receive(:perform_async)
|
||||
subject.call(status, status.account_id, text: 'Foo')
|
||||
end
|
||||
|
||||
it 'does not create an edit' do
|
||||
expect(status.reload.edits).to be_empty
|
||||
end
|
||||
|
||||
it 'does not notify anyone' do
|
||||
expect(ActivityPub::DistributionWorker).to_not have_received(:perform_async)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when text changes' do
|
||||
let!(:status) { Fabricate(:status, text: 'Foo') }
|
||||
let(:preview_card) { Fabricate(:preview_card) }
|
||||
|
Reference in New Issue
Block a user