Validate uri presence for remote status (#4985)
This commit is contained in:
parent
3f07f1b2b1
commit
dd6f9a1b82
|
@ -55,7 +55,7 @@ class Status < ApplicationRecord
|
||||||
has_one :notification, as: :activity, dependent: :destroy
|
has_one :notification, as: :activity, dependent: :destroy
|
||||||
has_one :stream_entry, as: :activity, inverse_of: :status
|
has_one :stream_entry, as: :activity, inverse_of: :status
|
||||||
|
|
||||||
validates :uri, uniqueness: true, unless: :local?
|
validates :uri, uniqueness: true, presence: true, unless: :local?
|
||||||
validates :text, presence: true, unless: :reblog?
|
validates :text, presence: true, unless: :reblog?
|
||||||
validates_with StatusLengthValidator
|
validates_with StatusLengthValidator
|
||||||
validates :reblog, uniqueness: { scope: :account }, if: :reblog?
|
validates :reblog, uniqueness: { scope: :account }, if: :reblog?
|
||||||
|
|
|
@ -516,6 +516,14 @@ RSpec.describe Status, type: :model do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'validation' do
|
||||||
|
it 'disallow empty uri for remote status' do
|
||||||
|
alice.update(domain: 'example.com')
|
||||||
|
status = Fabricate.build(:status, uri: '', account: alice)
|
||||||
|
expect(status).to model_have_error_on_field(:uri)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'after_create' do
|
describe 'after_create' do
|
||||||
it 'saves ActivityPub uri as uri for local status' do
|
it 'saves ActivityPub uri as uri for local status' do
|
||||||
status = Status.create(account: alice, text: 'foo')
|
status = Status.create(account: alice, text: 'foo')
|
||||||
|
|
Reference in New Issue