diff --git a/Gemfile b/Gemfile index b0724fadf5ba13676f7331bb4ae125955b19b5d5..5105e550c496c79938b0500455257c56ec7450b7 100644 --- a/Gemfile +++ b/Gemfile @@ -117,6 +117,7 @@ group :test do gem 'email_spec' gem 'resque_spec' gem "webmock" + gem 'test_after_commit' end group :production do diff --git a/Gemfile.lock b/Gemfile.lock index 7ec37f59dfc5ab6a5f66b226f4435b30dbc2c90f..da6c068b23f8b03d4fff39c305fa4ac0e6875d77 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -341,6 +341,7 @@ GEM tilt (~> 1.1, != 1.3.0) sqlite3 (1.3.6) stamp (0.1.6) + test_after_commit (0.0.1) therubyracer (0.10.1) libv8 (~> 3.3.10) thin (1.3.1) @@ -431,6 +432,7 @@ DEPENDENCIES six sqlite3 stamp + test_after_commit therubyracer thin uglifier (= 1.0.3) diff --git a/app/observers/users_project_observer.rb b/app/observers/users_project_observer.rb index e2fa1676661a455f5e3f03357b846dbb0bba3601..728607f03ad087ad4fa9b79fee2bb6c06d251ba3 100644 --- a/app/observers/users_project_observer.rb +++ b/app/observers/users_project_observer.rb @@ -1,12 +1,4 @@ class UsersProjectObserver < ActiveRecord::Observer - #def after_create(users_project) - #Notify.project_access_granted_email(users_project.id).deliver - #end - - #def after_update(users_project) - #Notify.project_access_granted_email(users_project.id).deliver - #end - def after_commit(users_project) Notify.project_access_granted_email(users_project.id).deliver end diff --git a/spec/observers/users_project_observer_spec.rb b/spec/observers/users_project_observer_spec.rb index 68fbcc4f8c6619e77a39f8eb4778ed11c4734a70..5bc4c877c1541098e53a1c53dcaca64e38da24e6 100644 --- a/spec/observers/users_project_observer_spec.rb +++ b/spec/observers/users_project_observer_spec.rb @@ -10,9 +10,9 @@ describe UsersProjectObserver do user: user )} subject { UsersProjectObserver.instance } - describe "#after_create" do + describe "#after_commit" do it "should called when UsersProject created" do - subject.should_receive(:after_commit) + subject.should_receive(:after_commit).once UsersProject.observers.enable :users_project_observer do Factory.create(:users_project, project: project, @@ -23,11 +23,8 @@ describe UsersProjectObserver do Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true)) subject.after_commit(users_project) end - end - - describe "#after_update" do it "should called when UsersProject updated" do - subject.should_receive(:after_commit) + subject.should_receive(:after_commit).once UsersProject.observers.enable :users_project_observer do users_project.update_attribute(:project_access, 40) end @@ -36,5 +33,11 @@ describe UsersProjectObserver do Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true)) subject.after_commit(users_project) end + it "should not called after UsersProject destroyed" do + subject.should_not_receive(:after_commit) + UsersProject.observers.enable :users_project_observer do + users_project.destroy + end + end end end