Loading app/models/reshare.rb +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading spec/models/reshare_spec.rb +7 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
app/models/reshare.rb +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
spec/models/reshare_spec.rb +7 −2 Original line number Diff line number Diff line Loading @@ -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 Loading