factory_bot 6.2.1 → 6.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +2 -2
- data/GETTING_STARTED.md +94 -8
- data/NEWS.md +113 -1
- data/README.md +28 -23
- data/lib/factory_bot/attribute/dynamic.rb +2 -2
- data/lib/factory_bot/attribute_assigner.rb +1 -1
- data/lib/factory_bot/decorator.rb +5 -17
- data/lib/factory_bot/definition.rb +37 -11
- data/lib/factory_bot/definition_proxy.rb +19 -6
- data/lib/factory_bot/evaluation.rb +3 -7
- data/lib/factory_bot/evaluator.rb +3 -4
- data/lib/factory_bot/factory.rb +16 -5
- data/lib/factory_bot/find_definitions.rb +2 -2
- data/lib/factory_bot/internal.rb +35 -2
- data/lib/factory_bot/linter.rb +13 -2
- data/lib/factory_bot/registry.rb +15 -3
- data/lib/factory_bot/sequence.rb +117 -4
- data/lib/factory_bot/strategy/stub.rb +23 -9
- data/lib/factory_bot/syntax/default.rb +2 -2
- data/lib/factory_bot/syntax/methods.rb +61 -12
- data/lib/factory_bot/trait.rb +11 -5
- data/lib/factory_bot/uri_manager.rb +63 -0
- data/lib/factory_bot/version.rb +1 -1
- data/lib/factory_bot.rb +34 -3
- metadata +23 -10
data/lib/factory_bot.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "set"
|
2
|
+
require "active_support"
|
2
3
|
require "active_support/core_ext/module/delegation"
|
3
4
|
require "active_support/core_ext/module/attribute_accessors"
|
4
5
|
require "active_support/deprecation"
|
@@ -45,6 +46,7 @@ require "factory_bot/decorator/attribute_hash"
|
|
45
46
|
require "factory_bot/decorator/disallows_duplicates_registry"
|
46
47
|
require "factory_bot/decorator/invocation_tracker"
|
47
48
|
require "factory_bot/decorator/new_constructor"
|
49
|
+
require "factory_bot/uri_manager"
|
48
50
|
require "factory_bot/linter"
|
49
51
|
require "factory_bot/version"
|
50
52
|
|
@@ -57,6 +59,9 @@ module FactoryBot
|
|
57
59
|
mattr_accessor :automatically_define_enum_traits, instance_accessor: false
|
58
60
|
self.automatically_define_enum_traits = true
|
59
61
|
|
62
|
+
mattr_accessor :sequence_setting_timeout, instance_accessor: false
|
63
|
+
self.sequence_setting_timeout = 3
|
64
|
+
|
60
65
|
# Look for errors in factories and (optionally) their traits.
|
61
66
|
# Parameters:
|
62
67
|
# factories - which factories to lint; omit for all factories
|
@@ -72,17 +77,43 @@ module FactoryBot
|
|
72
77
|
|
73
78
|
# Set the starting value for ids when using the build_stubbed strategy
|
74
79
|
#
|
75
|
-
#
|
76
|
-
# * starting_id +Integer+
|
77
|
-
# The new starting id value.
|
80
|
+
# @param [Integer] starting_id The new starting id value.
|
78
81
|
def self.build_stubbed_starting_id=(starting_id)
|
79
82
|
Strategy::Stub.next_id = starting_id - 1
|
80
83
|
end
|
81
84
|
|
82
85
|
class << self
|
86
|
+
# @!method rewind_sequence(*uri_parts)
|
87
|
+
# Rewind an individual global or inline sequence.
|
88
|
+
#
|
89
|
+
# @param [Array<Symbol>, String] uri_parts The components of the sequence URI.
|
90
|
+
#
|
91
|
+
# @example Rewinding a sequence by its URI parts
|
92
|
+
# rewind_sequence(:factory_name, :trait_name, :sequence_name)
|
93
|
+
#
|
94
|
+
# @example Rewinding a sequence by its URI string
|
95
|
+
# rewind_sequence("factory_name/trait_name/sequence_name")
|
96
|
+
#
|
97
|
+
# @!method set_sequence(*uri_parts, value)
|
98
|
+
# Set the sequence to a specific value, providing the new value is within
|
99
|
+
# the sequence set.
|
100
|
+
#
|
101
|
+
# @param [Array<Symbol>, String] uri_parts The components of the sequence URI.
|
102
|
+
# @param [Object] value The new value for the sequence. This must be a value that is
|
103
|
+
# within the sequence definition. For example, you cannot set
|
104
|
+
# a String sequence to an Integer value.
|
105
|
+
#
|
106
|
+
# @example
|
107
|
+
# set_sequence(:factory_name, :trait_name, :sequence_name, 450)
|
108
|
+
# @example
|
109
|
+
# set_sequence([:factory_name, :trait_name, :sequence_name], 450)
|
110
|
+
# @example
|
111
|
+
# set_sequence("factory_name/trait_name/sequence_name", 450)
|
83
112
|
delegate :factories,
|
84
113
|
:register_strategy,
|
85
114
|
:rewind_sequences,
|
115
|
+
:rewind_sequence,
|
116
|
+
:set_sequence,
|
86
117
|
:strategy_by_name,
|
87
118
|
to: Internal
|
88
119
|
end
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factory_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Clayton
|
8
8
|
- Joe Ferris
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activesupport
|
@@ -17,14 +16,14 @@ dependencies:
|
|
17
16
|
requirements:
|
18
17
|
- - ">="
|
19
18
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
19
|
+
version: 6.1.0
|
21
20
|
type: :runtime
|
22
21
|
prerelease: false
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
24
23
|
requirements:
|
25
24
|
- - ">="
|
26
25
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
26
|
+
version: 6.1.0
|
28
27
|
- !ruby/object:Gem::Dependency
|
29
28
|
name: activerecord
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,6 +80,20 @@ dependencies:
|
|
81
80
|
- - ">="
|
82
81
|
- !ruby/object:Gem::Version
|
83
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: mutex_m
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
84
97
|
- !ruby/object:Gem::Dependency
|
85
98
|
name: rake
|
86
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -232,12 +245,13 @@ files:
|
|
232
245
|
- lib/factory_bot/syntax/methods.rb
|
233
246
|
- lib/factory_bot/syntax_runner.rb
|
234
247
|
- lib/factory_bot/trait.rb
|
248
|
+
- lib/factory_bot/uri_manager.rb
|
235
249
|
- lib/factory_bot/version.rb
|
236
250
|
homepage: https://github.com/thoughtbot/factory_bot
|
237
251
|
licenses:
|
238
252
|
- MIT
|
239
|
-
metadata:
|
240
|
-
|
253
|
+
metadata:
|
254
|
+
changelog_uri: https://github.com/thoughtbot/factory_bot/blob/main/NEWS.md
|
241
255
|
rdoc_options: []
|
242
256
|
require_paths:
|
243
257
|
- lib
|
@@ -245,15 +259,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
245
259
|
requirements:
|
246
260
|
- - ">="
|
247
261
|
- !ruby/object:Gem::Version
|
248
|
-
version:
|
262
|
+
version: 3.0.0
|
249
263
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
250
264
|
requirements:
|
251
265
|
- - ">="
|
252
266
|
- !ruby/object:Gem::Version
|
253
267
|
version: '0'
|
254
268
|
requirements: []
|
255
|
-
rubygems_version: 3.
|
256
|
-
signing_key:
|
269
|
+
rubygems_version: 3.6.7
|
257
270
|
specification_version: 4
|
258
271
|
summary: factory_bot provides a framework and DSL for defining and using model instance
|
259
272
|
factories.
|