diff --git a/app/models/post.rb b/app/models/post.rb index eb7dff48adc3cfa375868db8dcf13403635c1ebc..1141f2fa0186941d0d5813205b04e8cfbf3c00d8 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 908453b27bb2e97615bc3e992a3e1dd08f83a32e..3d46719921dc5b4ee01b14af7c6d7ba1be20d9c2 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)