|
|
|
|
@ -31,29 +31,67 @@ RSpec.describe ActivityPub::Activity::Create do
|
|
|
|
|
subject.perform |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context 'when object has been edited' do |
|
|
|
|
context 'when object publication date is below ISO8601 range' do |
|
|
|
|
let(:object_json) do |
|
|
|
|
{ |
|
|
|
|
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, |
|
|
|
|
type: 'Note', |
|
|
|
|
content: 'Lorem ipsum', |
|
|
|
|
published: '2022-01-22T15:00:00Z', |
|
|
|
|
updated: '2022-01-22T16:00:00Z', |
|
|
|
|
published: '-0977-11-03T08:31:22Z', |
|
|
|
|
} |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'creates status' do |
|
|
|
|
it 'creates status with a valid creation date', :aggregate_failures do |
|
|
|
|
status = sender.statuses.first |
|
|
|
|
|
|
|
|
|
expect(status).to_not be_nil |
|
|
|
|
expect(status.text).to eq 'Lorem ipsum' |
|
|
|
|
|
|
|
|
|
expect(status.created_at).to be_within(30).of(Time.now.utc) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context 'when object publication date is above ISO8601 range' do |
|
|
|
|
let(:object_json) do |
|
|
|
|
{ |
|
|
|
|
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, |
|
|
|
|
type: 'Note', |
|
|
|
|
content: 'Lorem ipsum', |
|
|
|
|
published: '10000-11-03T08:31:22Z', |
|
|
|
|
} |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'creates status with a valid creation date', :aggregate_failures do |
|
|
|
|
status = sender.statuses.first |
|
|
|
|
|
|
|
|
|
expect(status).to_not be_nil |
|
|
|
|
expect(status.text).to eq 'Lorem ipsum' |
|
|
|
|
|
|
|
|
|
expect(status.created_at).to be_within(30).of(Time.now.utc) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
context 'when object has been edited' do |
|
|
|
|
let(:object_json) do |
|
|
|
|
{ |
|
|
|
|
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join, |
|
|
|
|
type: 'Note', |
|
|
|
|
content: 'Lorem ipsum', |
|
|
|
|
published: '2022-01-22T15:00:00Z', |
|
|
|
|
updated: '2022-01-22T16:00:00Z', |
|
|
|
|
} |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
it 'marks status as edited' do |
|
|
|
|
it 'creates status with appropriate creation and edition dates', :aggregate_failures do |
|
|
|
|
status = sender.statuses.first |
|
|
|
|
|
|
|
|
|
expect(status).to_not be_nil |
|
|
|
|
expect(status.text).to eq 'Lorem ipsum' |
|
|
|
|
|
|
|
|
|
expect(status.created_at).to eq '2022-01-22T15:00:00Z'.to_datetime |
|
|
|
|
|
|
|
|
|
expect(status.edited?).to be true |
|
|
|
|
expect(status.edited_at).to eq '2022-01-22T16:00:00Z'.to_datetime |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|