From af63607a5cf245b358acd153279faa3c22c099b0 Mon Sep 17 00:00:00 2001
From: Alex Denisov <1101.debian@gmail.com>
Date: Mon, 3 Sep 2012 21:46:17 +0300
Subject: [PATCH] test_after_commit gem added

---
 Gemfile                                       |  1 +
 Gemfile.lock                                  |  2 ++
 app/observers/users_project_observer.rb       |  8 --------
 spec/observers/users_project_observer_spec.rb | 15 +++++++++------
 4 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/Gemfile b/Gemfile
index b0724fadf5ba1..5105e550c496c 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 7ec37f59dfc5a..da6c068b23f8b 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 e2fa1676661a4..728607f03ad08 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 68fbcc4f8c661..5bc4c877c1541 100644
--- a/spec/observers/users_project_observer_spec.rb
+++ b/spec/observers/users_project_observer_spec.rb
@@ -10,9 +10,9 @@
                                         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 @@
       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 @@
       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
-- 
GitLab