reform 2.2.3 → 2.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +5 -1
  3. data/.travis.yml +11 -6
  4. data/Appraisals +8 -0
  5. data/CHANGES.md +56 -0
  6. data/CONTRIBUTING.md +31 -0
  7. data/Gemfile +2 -16
  8. data/ISSUE_TEMPLATE.md +25 -0
  9. data/LICENSE.txt +1 -1
  10. data/README.md +5 -7
  11. data/Rakefile +16 -9
  12. data/gemfiles/0.13.0.gemfile +8 -0
  13. data/gemfiles/1.5.0.gemfile +9 -0
  14. data/lib/reform.rb +1 -0
  15. data/lib/reform/contract.rb +7 -17
  16. data/lib/reform/contract/custom_error.rb +41 -0
  17. data/lib/reform/contract/validate.rb +53 -23
  18. data/lib/reform/errors.rb +61 -0
  19. data/lib/reform/form.rb +36 -10
  20. data/lib/reform/form/call.rb +1 -1
  21. data/lib/reform/form/composition.rb +2 -2
  22. data/lib/reform/form/dry.rb +10 -58
  23. data/lib/reform/form/dry/input_hash.rb +37 -0
  24. data/lib/reform/form/dry/new_api.rb +47 -0
  25. data/lib/reform/form/dry/old_api.rb +61 -0
  26. data/lib/reform/form/populator.rb +11 -29
  27. data/lib/reform/form/prepopulate.rb +5 -4
  28. data/lib/reform/form/validate.rb +28 -13
  29. data/lib/reform/result.rb +90 -0
  30. data/lib/reform/validation.rb +19 -11
  31. data/lib/reform/validation/groups.rb +12 -27
  32. data/lib/reform/version.rb +1 -1
  33. data/reform.gemspec +13 -13
  34. data/test/benchmarking.rb +39 -6
  35. data/test/call_new_api.rb +23 -0
  36. data/test/{call_test.rb → call_old_api.rb} +4 -4
  37. data/test/changed_test.rb +8 -8
  38. data/test/coercion_test.rb +51 -19
  39. data/test/composition_new_api.rb +186 -0
  40. data/test/{composition_test.rb → composition_old_api.rb} +66 -31
  41. data/test/contract/custom_error_test.rb +55 -0
  42. data/test/contract_new_api.rb +77 -0
  43. data/test/{contract_test.rb → contract_old_api.rb} +13 -13
  44. data/test/default_test.rb +2 -2
  45. data/test/deserialize_test.rb +11 -14
  46. data/test/errors_new_api.rb +225 -0
  47. data/test/errors_old_api.rb +230 -0
  48. data/test/feature_test.rb +8 -10
  49. data/test/fixtures/dry_error_messages.yml +73 -23
  50. data/test/fixtures/dry_new_api_error_messages.yml +104 -0
  51. data/test/form_new_api.rb +57 -0
  52. data/test/{form_test.rb → form_old_api.rb} +5 -5
  53. data/test/form_option_new_api.rb +24 -0
  54. data/test/{form_option_test.rb → form_option_old_api.rb} +4 -4
  55. data/test/from_test.rb +9 -13
  56. data/test/inherit_new_api.rb +105 -0
  57. data/test/inherit_old_api.rb +105 -0
  58. data/test/{module_test.rb → module_new_api.rb} +20 -25
  59. data/test/module_old_api.rb +146 -0
  60. data/test/parse_option_test.rb +40 -0
  61. data/test/parse_pipeline_test.rb +3 -3
  62. data/test/populate_new_api.rb +304 -0
  63. data/test/{populate_test.rb → populate_old_api.rb} +83 -49
  64. data/test/populator_skip_test.rb +9 -9
  65. data/test/prepopulator_test.rb +8 -9
  66. data/test/read_only_test.rb +12 -1
  67. data/test/readable_test.rb +7 -7
  68. data/test/reform_new_api.rb +204 -0
  69. data/test/{reform_test.rb → reform_old_api.rb} +30 -51
  70. data/test/save_new_api.rb +101 -0
  71. data/test/{save_test.rb → save_old_api.rb} +32 -20
  72. data/test/setup_test.rb +8 -8
  73. data/test/{skip_if_test.rb → skip_if_new_api.rb} +23 -12
  74. data/test/skip_if_old_api.rb +92 -0
  75. data/test/skip_setter_and_getter_test.rb +3 -4
  76. data/test/test_helper.rb +25 -14
  77. data/test/validate_new_api.rb +453 -0
  78. data/test/{validate_test.rb → validate_old_api.rb} +59 -69
  79. data/test/validation/dry_validation_new_api.rb +836 -0
  80. data/test/validation/dry_validation_old_api.rb +772 -0
  81. data/test/validation/result_test.rb +77 -0
  82. data/test/validation_library_provided_test.rb +16 -0
  83. data/test/virtual_test.rb +47 -7
  84. data/test/writeable_test.rb +35 -6
  85. metadata +101 -72
  86. data/gemfiles/Gemfile.disposable-0.3 +0 -6
  87. data/lib/reform/contract/errors.rb +0 -43
  88. data/lib/reform/form/mongoid.rb +0 -37
  89. data/lib/reform/form/orm.rb +0 -26
  90. data/lib/reform/mongoid.rb +0 -4
  91. data/test/deprecation_test.rb +0 -27
  92. data/test/errors_test.rb +0 -165
  93. data/test/inherit_test.rb +0 -119
  94. data/test/readonly_test.rb +0 -14
  95. data/test/validation/dry_test.rb +0 -60
  96. data/test/validation/dry_validation_test.rb +0 -352
  97. data/test/validation/errors.yml +0 -4
@@ -0,0 +1,77 @@
1
+ require "test_helper"
2
+
3
+ class ErrorsResultTest < Minitest::Spec
4
+ MyResult = Struct.new(:success?, :errors) do
5
+ def failure?; !success? end
6
+ end
7
+
8
+ # TODO: errors(args) not tested.
9
+
10
+ describe "Contract::Result#success?" do
11
+ let(:failed) { MyResult.new(false) }
12
+ let(:succeeded) { MyResult.new(true) }
13
+
14
+ it { Reform::Contract::Result.new([failed, failed]).success?.must_equal false }
15
+ it { Reform::Contract::Result.new([succeeded, failed]).success?.must_equal false }
16
+ it { Reform::Contract::Result.new([failed, succeeded]).success?.must_equal false }
17
+ it { Reform::Contract::Result.new([succeeded, succeeded]).success?.must_equal true }
18
+ end
19
+
20
+ describe "Contract::Result#errors" do
21
+ let(:results) do
22
+ [
23
+ MyResult.new(false, {length: ["no Int"]}),
24
+ MyResult.new(false, {title: ["must be filled"], nested: {something: []}}),
25
+ MyResult.new(false, {title: ["must be filled"], nested: {something: []}}),
26
+ MyResult.new(false, {title: ["something more"], nested: {something: []}})
27
+ ]
28
+ end
29
+
30
+ it { Reform::Contract::Result.new(results).errors.must_equal({title: ["must be filled", "something more"], length: ["no Int"]}) }
31
+ end
32
+
33
+ describe "Result::Pointer" do
34
+ let(:errors) do # dry result #errors format.
35
+ {
36
+ title: ["ignore"],
37
+ artist: {age: ["too old"],
38
+ bands: {
39
+ 0 => {name: "too new school"},
40
+ 1 => {name: "too boring"},
41
+ }
42
+ }
43
+ }
44
+ end
45
+
46
+ let(:top) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), []) }
47
+ it { top.success?.must_equal false }
48
+ it { top.errors.must_equal errors }
49
+
50
+ let(:artist) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), [:artist]) }
51
+ it { artist.success?.must_equal false }
52
+ it { artist.errors.must_equal({age: ["too old"], bands: {0 => {name: "too new school"}, 1 => {name: "too boring"}}}) }
53
+
54
+ let(:band) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), [:artist, :bands, 1]) }
55
+ it { band.success?.must_equal false }
56
+ it { band.errors.must_equal({name: "too boring"}) }
57
+
58
+ describe "advance" do
59
+ let(:advanced) { artist.advance(:bands, 1) }
60
+
61
+ it { advanced.success?.must_equal false }
62
+ it { advanced.errors.must_equal({name: "too boring"}) }
63
+
64
+ it { artist.advance(%i[absolute nonsense]).must_be_nil }
65
+ end
66
+ end
67
+ end
68
+
69
+ # validation group:
70
+
71
+ # form.errors/messages/hint(*args) ==> {:title: [..]}
72
+ # @call_result.errors/messages/hint(*args) }
73
+
74
+ # # result = Result(original_result => [:band, :label], my_local_result => [] )
75
+ # # result.messages(locale: :en) merges original_result and my_local_result
76
+
77
+ # form.errors => Result(fetch tree of all nested forms.messages(*args))
@@ -0,0 +1,16 @@
1
+ require "reform"
2
+ require "minitest/autorun"
3
+
4
+ class ValidationLibraryProvidedTest < MiniTest::Spec
5
+ it "no validation library loaded" do
6
+ assert_raises Reform::Validation::NoValidationLibraryError do
7
+ class PersonForm < Reform::Form
8
+ property :name
9
+
10
+ validation do
11
+ required(:name).maybe(:str?)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,16 +1,20 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class VirtualTest < MiniTest::Spec
4
- class CreditCardForm < Reform::Form
4
+ class CreditCardForm < TestForm
5
5
  property :credit_card_number, virtual: true # no read, no write, it's virtual.
6
+ collection :transactions, virtual: true, populate_if_empty: OpenStruct do
7
+ property :id
8
+ end
6
9
  end
7
10
 
8
- let (:form) { CreditCardForm.new(Object.new) }
11
+ let(:form) { CreditCardForm.new(Object.new) }
9
12
 
10
13
  it {
11
- form.validate("credit_card_number" => "123")
14
+ form.validate(credit_card_number: "123", transactions: [id: 1])
12
15
 
13
- form.credit_card_number.must_equal "123" # this is still readable in the UI.
16
+ form.credit_card_number.must_equal "123" # this is still readable in the UI.
17
+ form.transactions.first.id.must_equal 1 # this is still readable in the UI.
14
18
 
15
19
  form.sync
16
20
 
@@ -19,6 +23,42 @@ class VirtualTest < MiniTest::Spec
19
23
  hash = nested
20
24
  end
21
25
 
22
- hash.must_equal("credit_card_number"=> "123")
26
+ hash.must_equal("credit_card_number" => "123", "transactions" => ["id" => 1])
27
+ }
28
+ end
29
+
30
+ class VirtualAndDefaultTest < MiniTest::Spec
31
+ class CreditCardForm < TestForm
32
+ property :credit_card_number, virtual: true, default: "123" # no read, no write, it's virtual.
33
+ collection :transactions, virtual: true, populate_if_empty: OpenStruct, default: [OpenStruct.new(id: 2)] do
34
+ property :id
35
+ end
36
+ end
37
+
38
+ def hash(form)
39
+ hash = {}
40
+ form.save do |nested|
41
+ hash = nested
42
+ end
43
+ hash
44
+ end
45
+
46
+ let(:form) { CreditCardForm.new(Object.new) }
47
+
48
+ it {
49
+ form = CreditCardForm.new(Object.new)
50
+ form.validate({})
51
+
52
+ hash(form).must_equal("credit_card_number" => "123", "transactions" => ["id" => 2])
53
+
54
+ form = CreditCardForm.new(Object.new)
55
+ form.validate(credit_card_number: "123", transactions: [id: 1])
56
+
57
+ form.credit_card_number.must_equal "123" # this is still readable in the UI.
58
+ form.transactions.first.id.must_equal 1 # this is still readable in the UI.
59
+
60
+ form.sync
61
+
62
+ hash(form).must_equal("credit_card_number" => "123", "transactions" => ["id" => 1])
23
63
  }
24
- end
64
+ end
@@ -1,14 +1,14 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class WriteableTest < MiniTest::Spec
4
4
  Location = Struct.new(:country)
5
5
 
6
- class LocationForm < Reform::Form
6
+ class LocationForm < TestForm
7
7
  property :country, writeable: false
8
8
  end
9
9
 
10
- let (:loc) { Location.new("Australia") }
11
- let (:form) { LocationForm.new(loc) }
10
+ let(:loc) { Location.new("Australia") }
11
+ let(:form) { LocationForm.new(loc) }
12
12
 
13
13
  it do
14
14
  form.country.must_equal "Australia"
@@ -24,6 +24,35 @@ class WriteableTest < MiniTest::Spec
24
24
  hash = nested
25
25
  end
26
26
 
27
- hash.must_equal("country"=> "Germany")
27
+ hash.must_equal("country" => "Germany")
28
28
  end
29
- end
29
+ end
30
+
31
+ # writable option is alias of writeable option.
32
+ class WritableTest < MiniTest::Spec
33
+ Location = Struct.new(:country)
34
+
35
+ class LocationForm < TestForm
36
+ property :country, writable: false
37
+ end
38
+
39
+ let(:loc) { Location.new("Australia") }
40
+ let(:form) { LocationForm.new(loc) }
41
+
42
+ it do
43
+ form.country.must_equal "Australia"
44
+
45
+ form.validate("country" => "Germany") # this usually won't change when submitting.
46
+ form.country.must_equal "Germany"
47
+
48
+ form.sync
49
+ loc.country.must_equal "Australia" # the writer wasn't called.
50
+
51
+ hash = {}
52
+ form.save do |nested|
53
+ hash = nested
54
+ end
55
+
56
+ hash.must_equal("country" => "Germany")
57
+ end
58
+ end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reform
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.3
4
+ version: 2.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
- - Garrett Heinlen
8
+ - Fran Worley
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-12-04 00:00:00.000000000 Z
12
+ date: 2020-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: disposable
@@ -17,60 +17,54 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 0.3.0
20
+ version: 0.4.2
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: 0.4.0
23
+ version: 0.5.0
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: 0.3.0
30
+ version: 0.4.2
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.4.0
33
+ version: 0.5.0
34
34
  - !ruby/object:Gem::Dependency
35
- name: uber
35
+ name: representable
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.15
40
+ version: 2.4.0
41
41
  - - "<"
42
42
  - !ruby/object:Gem::Version
43
- version: 0.2.0
43
+ version: 3.1.0
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: 0.0.15
50
+ version: 2.4.0
51
51
  - - "<"
52
52
  - !ruby/object:Gem::Version
53
- version: 0.2.0
53
+ version: 3.1.0
54
54
  - !ruby/object:Gem::Dependency
55
- name: representable
55
+ name: uber
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 2.4.0
61
58
  - - "<"
62
59
  - !ruby/object:Gem::Version
63
- version: 3.1.0
60
+ version: 0.2.0
64
61
  type: :runtime
65
62
  prerelease: false
66
63
  version_requirements: !ruby/object:Gem::Requirement
67
64
  requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 2.4.0
71
65
  - - "<"
72
66
  - !ruby/object:Gem::Version
73
- version: 3.1.0
67
+ version: 0.2.0
74
68
  - !ruby/object:Gem::Dependency
75
69
  name: bundler
76
70
  requirement: !ruby/object:Gem::Requirement
@@ -86,7 +80,7 @@ dependencies:
86
80
  - !ruby/object:Gem::Version
87
81
  version: '0'
88
82
  - !ruby/object:Gem::Dependency
89
- name: rake
83
+ name: minitest
90
84
  requirement: !ruby/object:Gem::Requirement
91
85
  requirements:
92
86
  - - ">="
@@ -100,7 +94,7 @@ dependencies:
100
94
  - !ruby/object:Gem::Version
101
95
  version: '0'
102
96
  - !ruby/object:Gem::Dependency
103
- name: minitest
97
+ name: minitest-line
104
98
  requirement: !ruby/object:Gem::Requirement
105
99
  requirements:
106
100
  - - ">="
@@ -114,7 +108,7 @@ dependencies:
114
108
  - !ruby/object:Gem::Version
115
109
  version: '0'
116
110
  - !ruby/object:Gem::Dependency
117
- name: dry-types
111
+ name: pry-byebug
118
112
  requirement: !ruby/object:Gem::Requirement
119
113
  requirements:
120
114
  - - ">="
@@ -142,93 +136,114 @@ dependencies:
142
136
  - !ruby/object:Gem::Version
143
137
  version: '0'
144
138
  - !ruby/object:Gem::Dependency
145
- name: dry-validation
139
+ name: rake
146
140
  requirement: !ruby/object:Gem::Requirement
147
141
  requirements:
148
142
  - - ">="
149
143
  - !ruby/object:Gem::Version
150
- version: 0.10.0
144
+ version: '0'
151
145
  type: :development
152
146
  prerelease: false
153
147
  version_requirements: !ruby/object:Gem::Requirement
154
148
  requirements:
155
149
  - - ">="
156
150
  - !ruby/object:Gem::Version
157
- version: 0.10.0
151
+ version: '0'
158
152
  description: Form object decoupled from models.
159
153
  email:
160
154
  - apotonick@gmail.com
161
- - heinleng@gmail.com
155
+ - frances@safetytoolbox.co.uk
162
156
  executables: []
163
157
  extensions: []
164
158
  extra_rdoc_files: []
165
159
  files:
166
160
  - ".gitignore"
167
161
  - ".travis.yml"
162
+ - Appraisals
168
163
  - CHANGES.md
164
+ - CONTRIBUTING.md
169
165
  - Gemfile
166
+ - ISSUE_TEMPLATE.md
170
167
  - LICENSE.txt
171
168
  - README.md
172
169
  - Rakefile
173
170
  - TODO.md
174
- - gemfiles/Gemfile.disposable-0.3
171
+ - gemfiles/0.13.0.gemfile
172
+ - gemfiles/1.5.0.gemfile
175
173
  - lib/reform.rb
176
174
  - lib/reform/contract.rb
177
- - lib/reform/contract/errors.rb
175
+ - lib/reform/contract/custom_error.rb
178
176
  - lib/reform/contract/validate.rb
177
+ - lib/reform/errors.rb
179
178
  - lib/reform/form.rb
180
179
  - lib/reform/form/call.rb
181
180
  - lib/reform/form/coercion.rb
182
181
  - lib/reform/form/composition.rb
183
182
  - lib/reform/form/dry.rb
183
+ - lib/reform/form/dry/input_hash.rb
184
+ - lib/reform/form/dry/new_api.rb
185
+ - lib/reform/form/dry/old_api.rb
184
186
  - lib/reform/form/module.rb
185
- - lib/reform/form/mongoid.rb
186
- - lib/reform/form/orm.rb
187
187
  - lib/reform/form/populator.rb
188
188
  - lib/reform/form/prepopulate.rb
189
189
  - lib/reform/form/validate.rb
190
- - lib/reform/mongoid.rb
190
+ - lib/reform/result.rb
191
191
  - lib/reform/validation.rb
192
192
  - lib/reform/validation/groups.rb
193
193
  - lib/reform/version.rb
194
194
  - reform.gemspec
195
195
  - test/benchmarking.rb
196
- - test/call_test.rb
196
+ - test/call_new_api.rb
197
+ - test/call_old_api.rb
197
198
  - test/changed_test.rb
198
199
  - test/coercion_test.rb
199
- - test/composition_test.rb
200
- - test/contract_test.rb
200
+ - test/composition_new_api.rb
201
+ - test/composition_old_api.rb
202
+ - test/contract/custom_error_test.rb
203
+ - test/contract_new_api.rb
204
+ - test/contract_old_api.rb
201
205
  - test/default_test.rb
202
- - test/deprecation_test.rb
203
206
  - test/deserialize_test.rb
204
- - test/errors_test.rb
207
+ - test/errors_new_api.rb
208
+ - test/errors_old_api.rb
205
209
  - test/feature_test.rb
206
210
  - test/fixtures/dry_error_messages.yml
207
- - test/form_option_test.rb
208
- - test/form_test.rb
211
+ - test/fixtures/dry_new_api_error_messages.yml
212
+ - test/form_new_api.rb
213
+ - test/form_old_api.rb
214
+ - test/form_option_new_api.rb
215
+ - test/form_option_old_api.rb
209
216
  - test/from_test.rb
210
- - test/inherit_test.rb
211
- - test/module_test.rb
217
+ - test/inherit_new_api.rb
218
+ - test/inherit_old_api.rb
219
+ - test/module_new_api.rb
220
+ - test/module_old_api.rb
221
+ - test/parse_option_test.rb
212
222
  - test/parse_pipeline_test.rb
213
- - test/populate_test.rb
223
+ - test/populate_new_api.rb
224
+ - test/populate_old_api.rb
214
225
  - test/populator_skip_test.rb
215
226
  - test/prepopulator_test.rb
216
227
  - test/read_only_test.rb
217
228
  - test/readable_test.rb
218
- - test/readonly_test.rb
219
- - test/reform_test.rb
220
- - test/save_test.rb
229
+ - test/reform_new_api.rb
230
+ - test/reform_old_api.rb
231
+ - test/save_new_api.rb
232
+ - test/save_old_api.rb
221
233
  - test/setup_test.rb
222
- - test/skip_if_test.rb
234
+ - test/skip_if_new_api.rb
235
+ - test/skip_if_old_api.rb
223
236
  - test/skip_setter_and_getter_test.rb
224
237
  - test/test_helper.rb
225
- - test/validate_test.rb
226
- - test/validation/dry_test.rb
227
- - test/validation/dry_validation_test.rb
228
- - test/validation/errors.yml
238
+ - test/validate_new_api.rb
239
+ - test/validate_old_api.rb
240
+ - test/validation/dry_validation_new_api.rb
241
+ - test/validation/dry_validation_old_api.rb
242
+ - test/validation/result_test.rb
243
+ - test/validation_library_provided_test.rb
229
244
  - test/virtual_test.rb
230
245
  - test/writeable_test.rb
231
- homepage: https://github.com/apotonick/reform
246
+ homepage: https://github.com/trailblazer/reform
232
247
  licenses:
233
248
  - MIT
234
249
  metadata: {}
@@ -247,45 +262,59 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
262
  - !ruby/object:Gem::Version
248
263
  version: '0'
249
264
  requirements: []
250
- rubyforge_project:
251
- rubygems_version: 2.6.3
265
+ rubygems_version: 3.0.3
252
266
  signing_key:
253
267
  specification_version: 4
254
268
  summary: Form object decoupled from models with validation, population and presentation.
255
269
  test_files:
256
270
  - test/benchmarking.rb
257
- - test/call_test.rb
271
+ - test/call_new_api.rb
272
+ - test/call_old_api.rb
258
273
  - test/changed_test.rb
259
274
  - test/coercion_test.rb
260
- - test/composition_test.rb
261
- - test/contract_test.rb
275
+ - test/composition_new_api.rb
276
+ - test/composition_old_api.rb
277
+ - test/contract/custom_error_test.rb
278
+ - test/contract_new_api.rb
279
+ - test/contract_old_api.rb
262
280
  - test/default_test.rb
263
- - test/deprecation_test.rb
264
281
  - test/deserialize_test.rb
265
- - test/errors_test.rb
282
+ - test/errors_new_api.rb
283
+ - test/errors_old_api.rb
266
284
  - test/feature_test.rb
267
285
  - test/fixtures/dry_error_messages.yml
268
- - test/form_option_test.rb
269
- - test/form_test.rb
286
+ - test/fixtures/dry_new_api_error_messages.yml
287
+ - test/form_new_api.rb
288
+ - test/form_old_api.rb
289
+ - test/form_option_new_api.rb
290
+ - test/form_option_old_api.rb
270
291
  - test/from_test.rb
271
- - test/inherit_test.rb
272
- - test/module_test.rb
292
+ - test/inherit_new_api.rb
293
+ - test/inherit_old_api.rb
294
+ - test/module_new_api.rb
295
+ - test/module_old_api.rb
296
+ - test/parse_option_test.rb
273
297
  - test/parse_pipeline_test.rb
274
- - test/populate_test.rb
298
+ - test/populate_new_api.rb
299
+ - test/populate_old_api.rb
275
300
  - test/populator_skip_test.rb
276
301
  - test/prepopulator_test.rb
277
302
  - test/read_only_test.rb
278
303
  - test/readable_test.rb
279
- - test/readonly_test.rb
280
- - test/reform_test.rb
281
- - test/save_test.rb
304
+ - test/reform_new_api.rb
305
+ - test/reform_old_api.rb
306
+ - test/save_new_api.rb
307
+ - test/save_old_api.rb
282
308
  - test/setup_test.rb
283
- - test/skip_if_test.rb
309
+ - test/skip_if_new_api.rb
310
+ - test/skip_if_old_api.rb
284
311
  - test/skip_setter_and_getter_test.rb
285
312
  - test/test_helper.rb
286
- - test/validate_test.rb
287
- - test/validation/dry_test.rb
288
- - test/validation/dry_validation_test.rb
289
- - test/validation/errors.yml
313
+ - test/validate_new_api.rb
314
+ - test/validate_old_api.rb
315
+ - test/validation/dry_validation_new_api.rb
316
+ - test/validation/dry_validation_old_api.rb
317
+ - test/validation/result_test.rb
318
+ - test/validation_library_provided_test.rb
290
319
  - test/virtual_test.rb
291
320
  - test/writeable_test.rb