diff --git a/app/models/post.rb b/app/models/post.rb index eb7dff48a..1141f2fa0 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -29,6 +29,8 @@ class Post < ActiveRecord::Base belongs_to :author, :class_name => 'Person' + validates_uniqueness_of :guid + def diaspora_handle read_attribute(:diaspora_handle) || self.author.diaspora_handle end diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb index 908453b27..3d4671992 100644 --- a/spec/models/post_spec.rb +++ b/spec/models/post_spec.rb @@ -10,6 +10,13 @@ describe Post do @aspect = @user.aspects.create(:name => "winners") end + describe 'validations' do + it 'validates uniqueness of guid and does not throw a db error' do + message = Factory(:status_message) + Factory.build(:status_message, :guid => message.guid).should_not be_valid + end + end + describe 'deletion' do it 'should delete a posts comments on delete' do post = Factory.create(:status_message, :author => @user.person)