From 4fb4f711691c04034536dd48ce958480618fd25a Mon Sep 17 00:00:00 2001 From: Maxwell Salzberg Date: Tue, 9 Aug 2011 19:00:44 -0700 Subject: [PATCH] prevent duplicate services from being created --- app/models/service.rb | 1 + spec/models/service_spec.rb | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/app/models/service.rb b/app/models/service.rb index ef98c85bb..02553cb07 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -6,6 +6,7 @@ class Service < ActiveRecord::Base include ActionView::Helpers::TextHelper belongs_to :user + validates_uniqueness_of :uid, :scope => :type has_many :service_users, :dependent => :destroy def public_message(post, length, url = "") diff --git a/spec/models/service_spec.rb b/spec/models/service_spec.rb index 47850b940..8260e86c3 100644 --- a/spec/models/service_spec.rb +++ b/spec/models/service_spec.rb @@ -9,6 +9,13 @@ describe Service do @user.services << @service end + it 'is unique to a user by service type and uid' do + @service.save + @user.services << Services::Facebook.new(:access_token => "yeah") + @user.services[1].valid?.should be_false + + end + it 'destroys the associated service_user' do @service.service_users = [ServiceUser.create(:service_id => @service.id, :uid => "abc123",