Commit 1f1c8094fe342feb851c681dcde25459b82faff0

Authored by Alex Denisov
1 parent c7cfe3d8

After commit instead of after_update

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 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
5 9
6 - def after_update(users_project) 10 + def after_commit(users_project)
7 Notify.project_access_granted_email(users_project.id).deliver 11 Notify.project_access_granted_email(users_project.id).deliver
8 end 12 end
9 end 13 end
spec/observers/users_project_observer_spec.rb
@@ -12,7 +12,7 @@ describe UsersProjectObserver do @@ -12,7 +12,7 @@ describe UsersProjectObserver do
12 12
13 describe "#after_create" do 13 describe "#after_create" do
14 it "should called when UsersProject created" do 14 it "should called when UsersProject created" do
15 - subject.should_receive(:after_create) 15 + subject.should_receive(:after_commit)
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,
@@ -21,20 +21,20 @@ describe UsersProjectObserver do @@ -21,20 +21,20 @@ describe UsersProjectObserver do
21 end 21 end
22 it "should send email to user" do 22 it "should send email to user" 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_create(users_project) 24 + subject.after_commit(users_project)
25 end 25 end
26 end 26 end
27 27
28 describe "#after_update" do 28 describe "#after_update" do
29 it "should called when UsersProject updated" do 29 it "should called when UsersProject updated" do
30 - subject.should_receive(:after_update) 30 + subject.should_receive(:after_commit)
31 UsersProject.observers.enable :users_project_observer do 31 UsersProject.observers.enable :users_project_observer do
32 users_project.update_attribute(:project_access, 40) 32 users_project.update_attribute(:project_access, 40)
33 end 33 end
34 end 34 end
35 it "should send email to user" do 35 it "should send email to user" do
36 Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true)) 36 Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true))
37 - subject.after_update(users_project) 37 + subject.after_commit(users_project)
38 end 38 end
39 end 39 end
40 end 40 end