/
callbacks_spec.rb
42 lines (35 loc) · 1.36 KB
/
callbacks_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
require 'spec_helper'
require 'acceptance/acceptance_helper'
describe "callbacks" do
before do
define_model("User", :first_name => :string, :last_name => :string)
FactoryGirl.define do
factory :user_with_callbacks, :class => :user do
after_stub { |user| user.first_name = 'Stubby' }
after_build { |user| user.first_name = 'Buildy' }
after_create { |user| user.last_name = 'Createy' }
end
factory :user_with_inherited_callbacks, :parent => :user_with_callbacks do
after_stub { |user| user.last_name = 'Double-Stubby' }
end
end
end
it "runs the after_stub callback when stubbing" do
user = FactoryGirl.build_stubbed(:user_with_callbacks)
user.first_name.should == 'Stubby'
end
it "runs the after_build callback when building" do
user = FactoryGirl.build(:user_with_callbacks)
user.first_name.should == 'Buildy'
end
it "runs both the after_build and after_create callbacks when creating" do
user = FactoryGirl.create(:user_with_callbacks)
user.first_name.should == 'Buildy'
user.last_name.should == 'Createy'
end
it "runs both the after_stub callback on the factory and the inherited after_stub callback" do
user = FactoryGirl.build_stubbed(:user_with_inherited_callbacks)
user.first_name.should == 'Stubby'
user.last_name.should == 'Double-Stubby'
end
end