Commit af63607a5cf245b358acd153279faa3c22c099b0

Authored by Alex Denisov
1 parent 1f1c8094

test_after_commit gem added

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