Fix incoming status creation date not being restricted to standard ISO8601 (#27655)
This commit is contained in:
		
					parent
					
						
							
								6712bf86cd
							
						
					
				
			
			
				commit
				
					
						c0989b78f8
					
				
			
		
					 2 changed files with 45 additions and 6 deletions
				
			
		|  | @ -134,6 +134,46 @@ RSpec.describe ActivityPub::Activity::Create do | |||
|         subject.perform | ||||
|       end | ||||
| 
 | ||||
|       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: '-0977-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 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 | ||||
|           { | ||||
|  | @ -145,18 +185,16 @@ RSpec.describe ActivityPub::Activity::Create do | |||
|           } | ||||
|         end | ||||
| 
 | ||||
|         it 'creates status' 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' | ||||
|         end | ||||
| 
 | ||||
|         it 'marks status as edited' do | ||||
|           status = sender.statuses.first | ||||
|           expect(status.created_at).to eq '2022-01-22T15:00:00Z'.to_datetime | ||||
| 
 | ||||
|           expect(status).to_not be_nil | ||||
|           expect(status.edited?).to be true | ||||
|           expect(status.edited_at).to eq '2022-01-22T16:00:00Z'.to_datetime | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue