factory_girl 3.4.2 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/NEWS +5 -1
- data/gemfiles/3.0.gemfile.lock +1 -1
- data/gemfiles/3.1.gemfile.lock +1 -1
- data/gemfiles/3.2.gemfile.lock +1 -1
- data/lib/factory_girl/step_definitions.rb +12 -0
- data/lib/factory_girl/strategy/stub.rb +12 -4
- data/lib/factory_girl/version.rb +1 -1
- data/spec/acceptance/build_stubbed_spec.rb +35 -0
- metadata +2 -2
data/Gemfile.lock
CHANGED
data/NEWS
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
-
3.
|
1
|
+
3.5.0 (June 22, 2012)
|
2
|
+
Allow created_at to be set when using build_stubbed
|
3
|
+
Deprecate FactoryGirl step definitions
|
4
|
+
|
5
|
+
3.4.2 (June 19, 2012)
|
2
6
|
Fix bug in traits with callbacks called implicitly in factories whose
|
3
7
|
callbacks trigger multiple times
|
4
8
|
|
data/gemfiles/3.0.gemfile.lock
CHANGED
data/gemfiles/3.1.gemfile.lock
CHANGED
data/gemfiles/3.2.gemfile.lock
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'active_support/deprecation'
|
2
|
+
|
1
3
|
# @api private
|
2
4
|
module FactoryGirlStepHelpers
|
3
5
|
def convert_human_hash_to_attribute_hash(human_hash, associations = [])
|
@@ -109,6 +111,8 @@ FactoryGirl.factories.each do |factory|
|
|
109
111
|
end
|
110
112
|
|
111
113
|
Given /^the following (?:#{human_name}|#{human_name.pluralize}) exists?:?$/i do |table|
|
114
|
+
ActiveSupport::Deprecation.warn %{The step 'Given the following #{human_name} exists:' is deprecated and will be removed in 4.0}
|
115
|
+
|
112
116
|
table.hashes.each do |human_hash|
|
113
117
|
attributes = convert_human_hash_to_attribute_hash(human_hash, factory.associations)
|
114
118
|
FactoryGirl.create(factory.name, attributes)
|
@@ -116,10 +120,14 @@ FactoryGirl.factories.each do |factory|
|
|
116
120
|
end
|
117
121
|
|
118
122
|
Given /^an? #{human_name} exists$/i do
|
123
|
+
ActiveSupport::Deprecation.warn %{The step 'Given a #{human_name} exists' is deprecated and will be removed in 4.0}
|
124
|
+
|
119
125
|
FactoryGirl.create(factory.name)
|
120
126
|
end
|
121
127
|
|
122
128
|
Given /^(\d+) #{human_name.pluralize} exist$/i do |count|
|
129
|
+
ActiveSupport::Deprecation.warn %{The step 'Given #{count} #{human_name.pluralize} exist' is deprecated and will be removed in 4.0}
|
130
|
+
|
123
131
|
FactoryGirl.create_list(factory.name, count.to_i)
|
124
132
|
end
|
125
133
|
|
@@ -127,10 +135,14 @@ FactoryGirl.factories.each do |factory|
|
|
127
135
|
human_column_name = attribute_name.downcase.gsub('_', ' ')
|
128
136
|
|
129
137
|
Given /^an? #{human_name} exists with an? #{human_column_name} of "([^"]*)"$/i do |value|
|
138
|
+
ActiveSupport::Deprecation.warn %{The step 'Given a #{human_name} exists with a #{human_column_name} of "#{value}"' is deprecated and will be removed in 4.0}
|
139
|
+
|
130
140
|
FactoryGirl.create(factory.name, attribute_name => value)
|
131
141
|
end
|
132
142
|
|
133
143
|
Given /^(\d+) #{human_name.pluralize} exist with an? #{human_column_name} of "([^"]*)"$/i do |count, value|
|
144
|
+
ActiveSupport::Deprecation.warn %{The step 'Given #{count} #{human_name.pluralize} exists with a #{human_column_name} of "#{value}"' is deprecated and will be removed in 4.0}
|
145
|
+
|
134
146
|
FactoryGirl.create_list(factory.name, count.to_i, attribute_name => value)
|
135
147
|
end
|
136
148
|
end
|
@@ -22,15 +22,12 @@ module FactoryGirl
|
|
22
22
|
|
23
23
|
def stub_database_interaction_on_result(result_instance)
|
24
24
|
result_instance.id = next_id
|
25
|
+
|
25
26
|
result_instance.instance_eval do
|
26
27
|
def persisted?
|
27
28
|
!new_record?
|
28
29
|
end
|
29
30
|
|
30
|
-
def created_at
|
31
|
-
@created_at ||= Time.now
|
32
|
-
end
|
33
|
-
|
34
31
|
def new_record?
|
35
32
|
id.nil?
|
36
33
|
end
|
@@ -55,6 +52,17 @@ module FactoryGirl
|
|
55
52
|
raise 'stubbed models are not allowed to access the database'
|
56
53
|
end
|
57
54
|
end
|
55
|
+
|
56
|
+
created_at_missing_default = result_instance.respond_to?(:created_at) && !result_instance.created_at
|
57
|
+
result_instance_missing_created_at = !result_instance.respond_to?(:created_at)
|
58
|
+
|
59
|
+
if created_at_missing_default || result_instance_missing_created_at
|
60
|
+
result_instance.instance_eval do
|
61
|
+
def created_at
|
62
|
+
@created_at ||= Time.now
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
58
66
|
end
|
59
67
|
end
|
60
68
|
end
|
data/lib/factory_girl/version.rb
CHANGED
@@ -102,3 +102,38 @@ describe "calling `build_stubbed` with a block" do
|
|
102
102
|
end.should == expected
|
103
103
|
end
|
104
104
|
end
|
105
|
+
|
106
|
+
describe "defaulting `created_at`" do
|
107
|
+
include FactoryGirl::Syntax::Methods
|
108
|
+
|
109
|
+
before do
|
110
|
+
define_model('ThingWithTimestamp', created_at: :datetime)
|
111
|
+
define_model('ThingWithoutTimestamp')
|
112
|
+
|
113
|
+
FactoryGirl.define do
|
114
|
+
factory :thing_with_timestamp
|
115
|
+
factory :thing_without_timestamp
|
116
|
+
end
|
117
|
+
|
118
|
+
Timecop.freeze Time.now
|
119
|
+
end
|
120
|
+
|
121
|
+
after { Timecop.return }
|
122
|
+
|
123
|
+
it "defaults created_at for objects with created_at" do
|
124
|
+
build_stubbed(:thing_with_timestamp).created_at.should == Time.now
|
125
|
+
end
|
126
|
+
|
127
|
+
it "adds created_at to objects who don't have the method" do
|
128
|
+
build_stubbed(:thing_without_timestamp).should respond_to(:created_at)
|
129
|
+
end
|
130
|
+
|
131
|
+
it "allows overriding created_at for objects with created_at" do
|
132
|
+
build_stubbed(:thing_with_timestamp, created_at: 3.days.ago).created_at.should == 3.days.ago
|
133
|
+
end
|
134
|
+
|
135
|
+
it "doesn't allow setting created_at on an object that doesn't define it" do
|
136
|
+
expect { build_stubbed(:thing_without_timestamp, :created_at => Time.now) }.to
|
137
|
+
raise_error(NoMethodError, /created_at=/)
|
138
|
+
end
|
139
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factory_girl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-06-
|
13
|
+
date: 2012-06-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|