factory_bot_rails 6.4.4 → 6.5.1

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: 4c891e6c2be284a3021b951364c826af87e0b44a5df42a0bf5e46724551af1c5
4
- data.tar.gz: b00c271f28ebaca3026ab9c7da3a02ea348ecead85cb15cfa275337c9eb5e84f
3
+ metadata.gz: 75360fd8a053000e549d17f3d2a8a87c9ec00736e44bf8369e93bc7ff666b72f
4
+ data.tar.gz: d1eafc076c461ae5474506732a533600a7fc29954c5caf49c057319d271c6a40
5
5
  SHA512:
6
- metadata.gz: 3064dcddfc012355940f8ed7ab03e454d8d9fef625004eca93b5d6f3e054ba1acfb8151771b3526dc6b6e7f51517289d69934c48cd4b8e957e71cfcacd76cbaf
7
- data.tar.gz: e887d43df27d88d2979136201293dc8b601af0cc5f243e278706fbdd370fb317783b65a25a6950b218e010bb65c35182f5eac6b7f98dad1539fc8d8e8079650e
6
+ metadata.gz: d01d429548ba2f84b8ef8f37b743ac1fcbd779d79b00d25b8296cc39081544bf4a3b1b62bbe2c85d16c43855bab3d37e5ab4ca5c3b21a72763c28a41449024ab
7
+ data.tar.gz: 17a86892bfa8fc6508c67bd9f39795b99cf3ac12acc1caf5140b384ac0e2305946cdb0ad37f2e65d9c742945e4ebb76155d38982a465db6d6bfe771b7e900681
data/NEWS.md CHANGED
@@ -3,6 +3,22 @@ there might not be any notable changes in new versions of this project.
3
3
 
4
4
  # NEWS
5
5
 
6
+ ## 6.5.1 (September 5, 2025)
7
+
8
+ * Add: Add AuthenticationGenerator for users factory creation (Rodrigo Toledo)
9
+ * Changed: Update required_ruby_version to require >= Ruby 3.1 (y-yagi)
10
+ * Internal: Fix Cucumber tests (Neil Carvalho)
11
+
12
+ ## 6.5.0 (June 13, 2025)
13
+
14
+ * Add: First-party support for [`file_fixture`](https://api.rubyonrails.org/classes/ActiveSupport/Testing/FileFixtures.html#method-i-file_fixture) within factory blocks (Sean Doyle)
15
+ * Changed: Drop support for Ruby 3.0 (Fernando Perales)
16
+ * Changed: Add required Ruby version to the gemspec (Christoph Lipautz)
17
+ * Internal: Add Rails 7.2 to the test matrix (Raj Kumar)
18
+ * Internal: Add Rails 8.0 to the test matrix (James O'Neill)
19
+ * Internal: Run `standardrb` on CI runs (Christoph Lipautz)
20
+
21
+
6
22
  ## 6.4.4 (October 25, 2024)
7
23
 
8
24
  * Changed: Bump Factory Bot 6.5.0
data/README.md CHANGED
@@ -84,6 +84,19 @@ using an empty array:
84
84
  config.factory_bot.definition_file_paths = []
85
85
  ```
86
86
 
87
+ ### File Fixture Support
88
+
89
+ Factories have access to [ActiveSupport::Testing::FileFixtures#file_fixture][]
90
+ helper to read files from tests.
91
+
92
+ To disable file fixture support, set `file_fixture_support = false`:
93
+
94
+ ```rb
95
+ config.factory_bot.file_fixture_support = false
96
+ ```
97
+
98
+ [ActiveSupport::Testing::FileFixtures#file_fixture]: https://api.rubyonrails.org/classes/ActiveSupport/Testing/FileFixtures.html#method-i-file_fixture
99
+
87
100
  ### Generators
88
101
 
89
102
  Including factory\_bot\_rails in the development group of your Gemfile
@@ -0,0 +1,9 @@
1
+ module FactoryBotRails
2
+ module FileFixtureSupport
3
+ def self.included(klass)
4
+ klass.cattr_accessor :file_fixture_support
5
+
6
+ klass.delegate :file_fixture, to: "self.class.file_fixture_support"
7
+ end
8
+ end
9
+ end
@@ -4,6 +4,7 @@ require "factory_bot"
4
4
  require "factory_bot_rails/generator"
5
5
  require "factory_bot_rails/reloader"
6
6
  require "factory_bot_rails/factory_validator"
7
+ require "factory_bot_rails/file_fixture_support"
7
8
  require "rails"
8
9
 
9
10
  module FactoryBotRails
@@ -11,6 +12,7 @@ module FactoryBotRails
11
12
  config.factory_bot = ActiveSupport::OrderedOptions.new
12
13
  config.factory_bot.definition_file_paths = FactoryBot.definition_file_paths
13
14
  config.factory_bot.validator = FactoryBotRails::FactoryValidator.new
15
+ config.factory_bot.file_fixture_support = true
14
16
 
15
17
  initializer "factory_bot.set_fixture_replacement" do
16
18
  Generator.new(config).run
@@ -20,6 +22,22 @@ module FactoryBotRails
20
22
  FactoryBot.definition_file_paths = definition_file_paths
21
23
  end
22
24
 
25
+ config.after_initialize do
26
+ if config.factory_bot.file_fixture_support
27
+ FactoryBot::SyntaxRunner.include FactoryBotRails::FileFixtureSupport
28
+
29
+ ActiveSupport.on_load :active_support_test_case do
30
+ setup { FactoryBot::SyntaxRunner.file_fixture_support = self }
31
+ end
32
+
33
+ if defined?(RSpec) && RSpec.respond_to?(:configure)
34
+ RSpec.configure do |config|
35
+ config.before { FactoryBot::SyntaxRunner.file_fixture_support = self }
36
+ end
37
+ end
38
+ end
39
+ end
40
+
23
41
  config.after_initialize do |app|
24
42
  FactoryBot.find_definitions
25
43
  Reloader.new(app).run
@@ -0,0 +1,3 @@
1
+ module FactoryBotRails
2
+ VERSION = "6.5.1".freeze
3
+ end
@@ -0,0 +1,22 @@
1
+ require "generators/factory_bot"
2
+ require "generators/factory_bot/model/model_generator"
3
+ require "factory_bot_rails"
4
+
5
+ module FactoryBot
6
+ module Generators
7
+ FixedAttribute = Struct.new(:name, :default)
8
+
9
+ class AuthenticationGenerator < ModelGenerator
10
+ source_paths << File.join(File.dirname(__FILE__), "../model/templates")
11
+
12
+ private
13
+
14
+ def attributes
15
+ [
16
+ FixedAttribute.new(:email_address, "user@example.com"),
17
+ FixedAttribute.new(:password, "password")
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ FactoryBot.define do
4
+ factory :user do
5
+ password { "password123" }
6
+ password_confirmation { "password123" }
7
+ email_address { "user#{SecureRandom.hex(3)}@example.com" }
8
+ end
9
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_bot_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.4.4
4
+ version: 6.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Ferris
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-10-25 00:00:00.000000000 Z
10
+ date: 2025-09-05 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: factory_bot
@@ -30,14 +29,56 @@ dependencies:
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: 5.0.0
32
+ version: 6.1.0
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: 5.0.0
39
+ version: 6.1.0
40
+ - !ruby/object:Gem::Dependency
41
+ name: activerecord
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 6.1.0
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 6.1.0
54
+ - !ruby/object:Gem::Dependency
55
+ name: activestorage
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 6.1.0
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 6.1.0
68
+ - !ruby/object:Gem::Dependency
69
+ name: mutex_m
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
41
82
  - !ruby/object:Gem::Dependency
42
83
  name: sqlite3
43
84
  requirement: !ruby/object:Gem::Requirement
@@ -53,21 +94,91 @@ dependencies:
53
94
  - !ruby/object:Gem::Version
54
95
  version: '0'
55
96
  - !ruby/object:Gem::Dependency
56
- name: activerecord
97
+ name: appraisal
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: aruba
57
112
  requirement: !ruby/object:Gem::Requirement
58
113
  requirements:
59
114
  - - ">="
60
115
  - !ruby/object:Gem::Version
61
- version: 5.0.0
116
+ version: '0'
62
117
  type: :development
63
118
  prerelease: false
64
119
  version_requirements: !ruby/object:Gem::Requirement
65
120
  requirements:
66
121
  - - ">="
67
122
  - !ruby/object:Gem::Version
68
- version: 5.0.0
69
- description: factory_bot_rails provides integration between factory_bot and rails
70
- 5.0 or newer
123
+ version: '0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: cucumber
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ - !ruby/object:Gem::Dependency
139
+ name: rake
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ - !ruby/object:Gem::Dependency
153
+ name: rspec-rails
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ - !ruby/object:Gem::Dependency
167
+ name: standard
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ description: factory_bot_rails provides integration between factory_bot and Rails
181
+ 6.1 or newer
71
182
  email: jferris@thoughtbot.com
72
183
  executables: []
73
184
  extensions: []
@@ -80,13 +191,17 @@ files:
80
191
  - lib/factory_bot_rails.rb
81
192
  - lib/factory_bot_rails/definition_file_paths.rb
82
193
  - lib/factory_bot_rails/factory_validator.rb
194
+ - lib/factory_bot_rails/file_fixture_support.rb
83
195
  - lib/factory_bot_rails/generator.rb
84
196
  - lib/factory_bot_rails/generators/non_rspec_generator.rb
85
197
  - lib/factory_bot_rails/generators/null_generator.rb
86
198
  - lib/factory_bot_rails/generators/rspec_generator.rb
87
199
  - lib/factory_bot_rails/railtie.rb
88
200
  - lib/factory_bot_rails/reloader.rb
201
+ - lib/factory_bot_rails/version.rb
89
202
  - lib/generators/factory_bot.rb
203
+ - lib/generators/factory_bot/authentication/authentication_generator.rb
204
+ - lib/generators/factory_bot/authentication/templates/users.rb
90
205
  - lib/generators/factory_bot/model/model_generator.rb
91
206
  - lib/generators/factory_bot/model/templates/factories.erb
92
207
  - lib/rails/projections.json
@@ -95,7 +210,6 @@ licenses:
95
210
  - MIT
96
211
  metadata:
97
212
  changelog_uri: https://github.com/thoughtbot/factory_bot_rails/blob/main/NEWS.md
98
- post_install_message:
99
213
  rdoc_options: []
100
214
  require_paths:
101
215
  - lib
@@ -103,16 +217,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
217
  requirements:
104
218
  - - ">="
105
219
  - !ruby/object:Gem::Version
106
- version: '0'
220
+ version: 3.1.0
107
221
  required_rubygems_version: !ruby/object:Gem::Requirement
108
222
  requirements:
109
223
  - - ">="
110
224
  - !ruby/object:Gem::Version
111
225
  version: '0'
112
226
  requirements: []
113
- rubygems_version: 3.5.22
114
- signing_key:
227
+ rubygems_version: 3.6.2
115
228
  specification_version: 4
116
- summary: factory_bot_rails provides integration between factory_bot and rails 5.0
229
+ summary: factory_bot_rails provides integration between factory_bot and Rails 6.1
117
230
  or newer
118
231
  test_files: []