Commit af63607a5cf245b358acd153279faa3c22c099b0

Authored by Alex Denisov
1 parent 1f1c8094

test_after_commit gem added

@@ -117,6 +117,7 @@ group :test do @@ -117,6 +117,7 @@ group :test do
117 gem 'email_spec' 117 gem 'email_spec'
118 gem 'resque_spec' 118 gem 'resque_spec'
119 gem "webmock" 119 gem "webmock"
  120 + gem 'test_after_commit'
120 end 121 end
121 122
122 group :production do 123 group :production do
@@ -341,6 +341,7 @@ GEM @@ -341,6 +341,7 @@ GEM
341 tilt (~> 1.1, != 1.3.0) 341 tilt (~> 1.1, != 1.3.0)
342 sqlite3 (1.3.6) 342 sqlite3 (1.3.6)
343 stamp (0.1.6) 343 stamp (0.1.6)
  344 + test_after_commit (0.0.1)
344 therubyracer (0.10.1) 345 therubyracer (0.10.1)
345 libv8 (~> 3.3.10) 346 libv8 (~> 3.3.10)
346 thin (1.3.1) 347 thin (1.3.1)
@@ -431,6 +432,7 @@ DEPENDENCIES @@ -431,6 +432,7 @@ DEPENDENCIES
431 six 432 six
432 sqlite3 433 sqlite3
433 stamp 434 stamp
  435 + test_after_commit
434 therubyracer 436 therubyracer
435 thin 437 thin
436 uglifier (= 1.0.3) 438 uglifier (= 1.0.3)
app/observers/users_project_observer.rb
1 class UsersProjectObserver < ActiveRecord::Observer 1 class UsersProjectObserver < ActiveRecord::Observer
2 - #def after_create(users_project)  
3 - #Notify.project_access_granted_email(users_project.id).deliver  
4 - #end  
5 -  
6 - #def after_update(users_project)  
7 - #Notify.project_access_granted_email(users_project.id).deliver  
8 - #end  
9 -  
10 def after_commit(users_project) 2 def after_commit(users_project)
11 Notify.project_access_granted_email(users_project.id).deliver 3 Notify.project_access_granted_email(users_project.id).deliver
12 end 4 end
spec/observers/users_project_observer_spec.rb
@@ -10,9 +10,9 @@ describe UsersProjectObserver do @@ -10,9 +10,9 @@ describe UsersProjectObserver do
10 user: user )} 10 user: user )}
11 subject { UsersProjectObserver.instance } 11 subject { UsersProjectObserver.instance }
12 12
13 - describe "#after_create" do 13 + describe "#after_commit" do
14 it "should called when UsersProject created" do 14 it "should called when UsersProject created" do
15 - subject.should_receive(:after_commit) 15 + subject.should_receive(:after_commit).once
16 UsersProject.observers.enable :users_project_observer do 16 UsersProject.observers.enable :users_project_observer do
17 Factory.create(:users_project, 17 Factory.create(:users_project,
18 project: project, 18 project: project,
@@ -23,11 +23,8 @@ describe UsersProjectObserver do @@ -23,11 +23,8 @@ describe UsersProjectObserver do
23 Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true)) 23 Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true))
24 subject.after_commit(users_project) 24 subject.after_commit(users_project)
25 end 25 end
26 - end  
27 -  
28 - describe "#after_update" do  
29 it "should called when UsersProject updated" do 26 it "should called when UsersProject updated" do
30 - subject.should_receive(:after_commit) 27 + subject.should_receive(:after_commit).once
31 UsersProject.observers.enable :users_project_observer do 28 UsersProject.observers.enable :users_project_observer do
32 users_project.update_attribute(:project_access, 40) 29 users_project.update_attribute(:project_access, 40)
33 end 30 end
@@ -36,5 +33,11 @@ describe UsersProjectObserver do @@ -36,5 +33,11 @@ describe UsersProjectObserver do
36 Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true)) 33 Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true))
37 subject.after_commit(users_project) 34 subject.after_commit(users_project)
38 end 35 end
  36 + it "should not called after UsersProject destroyed" do
  37 + subject.should_not_receive(:after_commit)
  38 + UsersProject.observers.enable :users_project_observer do
  39 + users_project.destroy
  40 + end
  41 + end
39 end 42 end
40 end 43 end