Unverified Commit 04035c3e authored by Benjamin Neff's avatar Benjamin Neff
Browse files

Allow to receive reshares without root

closes #7590
parent 163ffdb1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
class Reshare < Post
  belongs_to :root, class_name: "Post", foreign_key: :root_guid, primary_key: :guid, optional: true
  validate :root_must_be_public
  validates_presence_of :root, :on => :create
  validates :root, presence: true, on: :create, if: proc {|reshare| reshare.author.local? }
  validates :root_guid, uniqueness: {scope: :author_id}, allow_nil: true
  delegate :author, to: :root, prefix: true

+7 −2
Original line number Diff line number Diff line
@@ -4,11 +4,16 @@ describe Reshare, type: :model do
  end

  context "validation" do
    it "requires root" do
      reshare = FactoryGirl.build(:reshare, root: nil)
    it "requires root when the author is local" do
      reshare = FactoryGirl.build(:reshare, root: nil, author: alice.person)
      expect(reshare).not_to be_valid
    end

    it "doesn't require root when the author is remote" do
      reshare = FactoryGirl.build(:reshare, root: nil, author: remote_raphael)
      expect(reshare).to be_valid
    end

    it "require public root" do
      reshare = FactoryGirl.build(:reshare, root: FactoryGirl.create(:status_message, public: false))
      expect(reshare).not_to be_valid