factory_bot-blueprint-rspec 0.2.0 → 0.4.0
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f99bbc7d1b7e6a8a7fb74d0fb64b88efb1baff08a583fdab7491db3c81ab4233
|
4
|
+
data.tar.gz: 2aa5ba9a0705e6389236e8e5699e2d0cb7c418c70373b9ef74d71c854450a473
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71b5c78c7b59fa4f97c2171591dbe2533fd901fc4e7bd7647e48e017ce26f509e9c4c75178d3d86494c275b92e07431f11ca88c66de0164cf9b77cf3c2c1e321
|
7
|
+
data.tar.gz: d8e3182c44520b7ea3d2233388bf7711690f71c050f9a37089955ddad25cb9c62c5170440a486a977ae7d0b8c90a78001195bde7ea1e224026b7a497d43b67b5
|
@@ -27,6 +27,7 @@ module FactoryBot
|
|
27
27
|
# end
|
28
28
|
def let_blueprint(name, inherit: false, &)
|
29
29
|
let(name) { ::FactoryBot::Blueprint.plan(inherit ? super() : nil, ext: self, &) }
|
30
|
+
name
|
30
31
|
end
|
31
32
|
|
32
33
|
# Build objects by <code>build</code> strategy in FactoryBot from a blueprint and declare them using RSpec's
|
@@ -55,9 +56,9 @@ module FactoryBot
|
|
55
56
|
# let_blueprint_build blog_bp: { result: :blog, items: %i[article], instance: :blog_instance }
|
56
57
|
#
|
57
58
|
# # Above example will be expanded to:
|
58
|
-
# let(:blog_instance) { ::FactoryBot::Blueprint.build(blog_bp) }
|
59
|
-
# let(:blog) { blog_instance[
|
60
|
-
# let(:article) { blog_instance[
|
59
|
+
# let(:blog_instance) { ::FactoryBot::Blueprint.build(blog_bp) } # the instance object
|
60
|
+
# let(:blog) { blog_instance[Factrey::Blueprint::Node::RESULT_NAME] } # the result object
|
61
|
+
# let(:article) { blog_instance[:article] } # the item objects
|
61
62
|
# end
|
62
63
|
def let_blueprint_build(**map) = let_blueprint_instantiate(:build, **map)
|
63
64
|
|
@@ -73,7 +74,7 @@ module FactoryBot
|
|
73
74
|
def let_blueprint_instantiate(strategy, **map)
|
74
75
|
raise ArgumentError, "Unsupported strategy: #{strategy}" if strategy && !%i[create build].include?(strategy)
|
75
76
|
|
76
|
-
map.
|
77
|
+
map.map do |source, definition|
|
77
78
|
raise TypeError, "source must be a Symbol" unless source.is_a?(Symbol)
|
78
79
|
|
79
80
|
definition =
|
@@ -102,9 +103,11 @@ module FactoryBot
|
|
102
103
|
let(instance) { ::FactoryBot::Blueprint.instantiate(strategy, __send__(source)) }
|
103
104
|
end
|
104
105
|
|
105
|
-
let(result_name) { __send__(instance)[
|
106
|
+
let(result_name) { __send__(instance)[::Factrey::Blueprint::Node::RESULT_NAME] } if result_name
|
106
107
|
|
107
|
-
item_names.each { |name| let(name) { __send__(instance)[
|
108
|
+
item_names.each { |name| let(name) { __send__(instance)[name] } }
|
109
|
+
|
110
|
+
instance
|
108
111
|
end
|
109
112
|
end
|
110
113
|
|
@@ -150,6 +153,30 @@ module FactoryBot
|
|
150
153
|
let_blueprint(source, inherit:, &)
|
151
154
|
let_blueprint_instantiate strategy, source => { result: name, items: }
|
152
155
|
end
|
156
|
+
|
157
|
+
# <code>let!</code> version of {#let_blueprint}.
|
158
|
+
def let_blueprint!(...)
|
159
|
+
name = let_blueprint(...)
|
160
|
+
before { __send__(name) }
|
161
|
+
end
|
162
|
+
|
163
|
+
# <code>let!</code> version of {#let_blueprint_build}.
|
164
|
+
def let_blueprint_build!(...)
|
165
|
+
names = let_blueprint_build(...)
|
166
|
+
before { names.each { __send__(_1) } }
|
167
|
+
end
|
168
|
+
|
169
|
+
# <code>let!</code> version of {#let_blueprint_create}.
|
170
|
+
def let_blueprint_create!(...)
|
171
|
+
names = let_blueprint_create(...)
|
172
|
+
before { names.each { __send__(_1) } }
|
173
|
+
end
|
174
|
+
|
175
|
+
# <code>let!</code> version of {#letbp}.
|
176
|
+
def letbp!(...)
|
177
|
+
names = letbp(...)
|
178
|
+
before { names.each { __send__(_1) } }
|
179
|
+
end
|
153
180
|
end
|
154
181
|
end
|
155
182
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factory_bot-blueprint-rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yubrot
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: factory_bot-blueprint
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.4.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec-core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|