reform 2.3.2 → 2.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +4 -0
  3. data/lib/reform/form/dry/new_api.rb +2 -4
  4. data/lib/reform/version.rb +1 -1
  5. data/test/call_new_api.rb +6 -6
  6. data/test/call_old_api.rb +6 -6
  7. data/test/changed_test.rb +6 -6
  8. data/test/coercion_test.rb +13 -13
  9. data/test/composition_new_api.rb +24 -24
  10. data/test/composition_old_api.rb +24 -24
  11. data/test/contract_new_api.rb +8 -8
  12. data/test/contract_old_api.rb +8 -8
  13. data/test/default_test.rb +2 -2
  14. data/test/deserialize_test.rb +8 -8
  15. data/test/errors_new_api.rb +38 -38
  16. data/test/errors_old_api.rb +38 -38
  17. data/test/feature_test.rb +2 -2
  18. data/test/form_new_api.rb +3 -3
  19. data/test/form_old_api.rb +3 -3
  20. data/test/form_option_new_api.rb +1 -1
  21. data/test/form_option_old_api.rb +1 -1
  22. data/test/from_test.rb +10 -10
  23. data/test/inherit_new_api.rb +17 -17
  24. data/test/inherit_old_api.rb +17 -17
  25. data/test/module_new_api.rb +8 -8
  26. data/test/module_old_api.rb +9 -9
  27. data/test/parse_option_test.rb +7 -7
  28. data/test/parse_pipeline_test.rb +1 -1
  29. data/test/populate_new_api.rb +53 -53
  30. data/test/populate_old_api.rb +53 -53
  31. data/test/populator_skip_test.rb +2 -2
  32. data/test/prepopulator_test.rb +15 -15
  33. data/test/read_only_test.rb +2 -2
  34. data/test/readable_test.rb +3 -3
  35. data/test/reform_new_api.rb +19 -19
  36. data/test/reform_old_api.rb +19 -19
  37. data/test/save_new_api.rb +4 -4
  38. data/test/save_old_api.rb +4 -4
  39. data/test/setup_test.rb +9 -9
  40. data/test/skip_if_new_api.rb +12 -12
  41. data/test/skip_if_old_api.rb +15 -15
  42. data/test/skip_setter_and_getter_test.rb +6 -6
  43. data/test/validate_new_api.rb +62 -62
  44. data/test/validate_old_api.rb +64 -64
  45. data/test/validation/dry_validation_new_api.rb +115 -116
  46. data/test/validation/dry_validation_old_api.rb +105 -105
  47. data/test/validation/result_test.rb +14 -14
  48. data/test/virtual_test.rb +7 -7
  49. data/test/writeable_test.rb +8 -8
  50. metadata +2 -2
@@ -51,61 +51,61 @@ class DryValidationErrorsAPITest < Minitest::Spec
51
51
  it "everything wrong" do
52
52
  result = form.(title: nil, artist: {email: ""}, songs: [{title: "Clams have feelings too"}, {title: ""}])
53
53
 
54
- result.success?.must_equal false
54
+ _(result.success?).must_equal false
55
55
 
56
- form.errors.messages.must_equal(title: ["must be filled", "size cannot be less than 2"], "artist.email": ["must be filled"], "artist.label.location": ["must be filled"], "songs.title": ["must be filled"])
57
- form.artist.errors.messages.must_equal(email: ["must be filled"], "label.location": ["must be filled"])
58
- form.artist.label.errors.messages.must_equal(location: ["must be filled"])
59
- form.songs[0].errors.messages.must_equal({})
60
- form.songs[1].errors.messages.must_equal(title: ["must be filled"])
56
+ _(form.errors.messages).must_equal(title: ["must be filled", "size cannot be less than 2"], "artist.email": ["must be filled"], "artist.label.location": ["must be filled"], "songs.title": ["must be filled"])
57
+ _(form.artist.errors.messages).must_equal(email: ["must be filled"], "label.location": ["must be filled"])
58
+ _(form.artist.label.errors.messages).must_equal(location: ["must be filled"])
59
+ _(form.songs[0].errors.messages).must_equal({})
60
+ _(form.songs[1].errors.messages).must_equal(title: ["must be filled"])
61
61
 
62
62
  # #errors[]
63
- form.errors[:nonsense].must_equal []
64
- form.errors[:title].must_equal ["must be filled", "size cannot be less than 2"]
65
- form.artist.errors[:email].must_equal ["must be filled"]
66
- form.artist.label.errors[:location].must_equal ["must be filled"]
67
- form.songs[0].errors[:title].must_equal []
68
- form.songs[1].errors[:title].must_equal ["must be filled"]
63
+ _(form.errors[:nonsense]).must_equal []
64
+ _(form.errors[:title]).must_equal ["must be filled", "size cannot be less than 2"]
65
+ _(form.artist.errors[:email]).must_equal ["must be filled"]
66
+ _(form.artist.label.errors[:location]).must_equal ["must be filled"]
67
+ _(form.songs[0].errors[:title]).must_equal []
68
+ _(form.songs[1].errors[:title]).must_equal ["must be filled"]
69
69
 
70
70
  # #to_result
71
- form.to_result.errors.must_equal(title: ["must be filled"])
72
- form.to_result.messages.must_equal(title: ["must be filled", "size cannot be less than 2"])
73
- form.to_result.hints.must_equal(title: ["size cannot be less than 2"])
74
- form.artist.to_result.errors.must_equal(email: ["must be filled"])
75
- form.artist.to_result.messages.must_equal(email: ["must be filled"])
76
- form.artist.to_result.hints.must_equal({})
77
- form.artist.label.to_result.errors.must_equal(location: ["must be filled"])
78
- form.artist.label.to_result.messages.must_equal(location: ["must be filled"])
79
- form.artist.label.to_result.hints.must_equal({})
80
- form.songs[0].to_result.errors.must_equal({})
81
- form.songs[0].to_result.messages.must_equal({})
82
- form.songs[0].to_result.hints.must_equal({})
83
- form.songs[1].to_result.errors.must_equal(title: ["must be filled"])
84
- form.songs[1].to_result.messages.must_equal(title: ["must be filled"])
85
- form.songs[1].to_result.hints.must_equal({})
86
- form.songs[1].to_result.errors(locale: :de).must_equal(title: ["muss abgefüllt sein"])
71
+ _(form.to_result.errors).must_equal(title: ["must be filled"])
72
+ _(form.to_result.messages).must_equal(title: ["must be filled", "size cannot be less than 2"])
73
+ _(form.to_result.hints).must_equal(title: ["size cannot be less than 2"])
74
+ _(form.artist.to_result.errors).must_equal(email: ["must be filled"])
75
+ _(form.artist.to_result.messages).must_equal(email: ["must be filled"])
76
+ _(form.artist.to_result.hints).must_equal({})
77
+ _(form.artist.label.to_result.errors).must_equal(location: ["must be filled"])
78
+ _(form.artist.label.to_result.messages).must_equal(location: ["must be filled"])
79
+ _(form.artist.label.to_result.hints).must_equal({})
80
+ _(form.songs[0].to_result.errors).must_equal({})
81
+ _(form.songs[0].to_result.messages).must_equal({})
82
+ _(form.songs[0].to_result.hints).must_equal({})
83
+ _(form.songs[1].to_result.errors).must_equal(title: ["must be filled"])
84
+ _(form.songs[1].to_result.messages).must_equal(title: ["must be filled"])
85
+ _(form.songs[1].to_result.hints).must_equal({})
86
+ _(form.songs[1].to_result.errors(locale: :de)).must_equal(title: ["muss abgefüllt sein"])
87
87
  # seems like dry-v when calling Dry::Schema::Result#messages locale option is ignored
88
88
  # started a topic in their forum https://discourse.dry-rb.org/t/dry-result-messages-ignore-locale-option/910
89
89
  # form.songs[1].to_result.messages(locale: :de).must_equal(title: ["muss abgefüllt sein"])
90
- form.songs[1].to_result.hints(locale: :de).must_equal({})
90
+ _(form.songs[1].to_result.hints(locale: :de)).must_equal({})
91
91
  end
92
92
 
93
93
  it "only nested property is invalid." do
94
94
  result = form.(title: "Black Star", artist: {email: ""})
95
95
 
96
- result.success?.must_equal false
96
+ _(result.success?).must_equal false
97
97
 
98
98
  # errors.messages
99
- form.errors.messages.must_equal("artist.email": ["must be filled"], "artist.label.location": ["must be filled"], "songs.title": ["must be filled"])
100
- form.artist.errors.messages.must_equal(email: ["must be filled"], "label.location": ["must be filled"])
101
- form.artist.label.errors.messages.must_equal(location: ["must be filled"])
99
+ _(form.errors.messages).must_equal("artist.email": ["must be filled"], "artist.label.location": ["must be filled"], "songs.title": ["must be filled"])
100
+ _(form.artist.errors.messages).must_equal(email: ["must be filled"], "label.location": ["must be filled"])
101
+ _(form.artist.label.errors.messages).must_equal(location: ["must be filled"])
102
102
  end
103
103
 
104
104
  it "nested collection invalid" do
105
105
  result = form.(title: "Black Star", artist: {email: "uhm", label: {location: "Hannover"}}, songs: [{title: ""}])
106
106
 
107
- result.success?.must_equal false
108
- form.errors.messages.must_equal("songs.title": ["must be filled"])
107
+ _(result.success?).must_equal false
108
+ _(form.errors.messages).must_equal("songs.title": ["must be filled"])
109
109
  end
110
110
 
111
111
  #---
@@ -130,15 +130,15 @@ class DryValidationErrorsAPITest < Minitest::Spec
130
130
  form = CollectionExternalValidationsForm.new(Album.new(nil, nil, [Song.new, Song.new]))
131
131
  form.validate(songs: [{title: "Liar"}, {title: ""}])
132
132
 
133
- form.errors.messages.must_equal("songs.title": ["must be filled"])
134
- form.songs[0].errors.messages.must_equal({})
135
- form.songs[1].errors.messages.must_equal(title: ["must be filled"])
133
+ _(form.errors.messages).must_equal("songs.title": ["must be filled"])
134
+ _(form.songs[0].errors.messages).must_equal({})
135
+ _(form.songs[1].errors.messages).must_equal(title: ["must be filled"])
136
136
  end
137
137
  end
138
138
 
139
139
  class DryValidationExplicitSchemaTest < Minitest::Spec
140
140
  Session = Struct.new(:name, :email)
141
- SessionSchema = Dry::Validation.Contract do
141
+ SessionContract = Dry::Validation.Contract do
142
142
  params do
143
143
  required(:name).filled
144
144
  required(:email).filled
@@ -151,20 +151,20 @@ class DryValidationExplicitSchemaTest < Minitest::Spec
151
151
  property :name
152
152
  property :email
153
153
 
154
- validation schema: SessionSchema
154
+ validation contract: SessionContract
155
155
  end
156
156
 
157
157
  let(:form) { SessionForm.new(Session.new) }
158
158
 
159
159
  # valid.
160
160
  it do
161
- form.validate(name: "Helloween", email: "yep").must_equal true
162
- form.errors.messages.inspect.must_equal "{}"
161
+ _(form.validate(name: "Helloween", email: "yep")).must_equal true
162
+ _(form.errors.messages.inspect).must_equal "{}"
163
163
  end
164
164
 
165
165
  it "invalid" do
166
- form.validate(name: "", email: "yep").must_equal false
167
- form.errors.messages.inspect.must_equal "{:name=>[\"must be filled\"]}"
166
+ _(form.validate(name: "", email: "yep")).must_equal false
167
+ _(form.errors.messages.inspect).must_equal "{:name=>[\"must be filled\"]}"
168
168
  end
169
169
  end
170
170
 
@@ -226,15 +226,15 @@ class DryValidationDefaultGroupTest < Minitest::Spec
226
226
  end
227
227
 
228
228
  it "invalid" do
229
- form.validate(
229
+ _(form.validate(
230
230
  username: "Helloween",
231
231
  email: "yep",
232
232
  active: "1",
233
233
  starts_at: "01/01/2000 - 11:00",
234
234
  color: "purple"
235
- ).must_equal false
236
- form.active.must_equal true
237
- form.errors.messages.inspect.must_equal "{:confirm_password=>[\"must be filled\"], :color=>[\"must be one of: red orange green\"]}"
235
+ )).must_equal false
236
+ _(form.active).must_equal true
237
+ _(form.errors.messages.inspect).must_equal "{:confirm_password=>[\"must be filled\"], :color=>[\"must be one of: red orange green\"]}"
238
238
  end
239
239
  end
240
240
 
@@ -275,36 +275,36 @@ class ValidationGroupsTest < MiniTest::Spec
275
275
 
276
276
  # valid.
277
277
  it do
278
- form.validate(username: "Helloween",
278
+ _(form.validate(username: "Helloween",
279
279
  special_class: SomeClass.new(id: 15),
280
280
  email: "yep",
281
281
  password: "99",
282
- confirm_password: "99").must_equal true
283
- form.errors.messages.inspect.must_equal "{}"
282
+ confirm_password: "99")).must_equal true
283
+ _(form.errors.messages.inspect).must_equal "{}"
284
284
  end
285
285
 
286
286
  # invalid.
287
287
  it do
288
- form.validate({}).must_equal false
289
- form.errors.messages.must_equal({username: ["must be filled"], email: ["must be filled"], special_class: ["must be filled", "must be ValidationGroupsTest::SomeClass"]})
288
+ _(form.validate({})).must_equal false
289
+ _(form.errors.messages).must_equal({username: ["must be filled"], email: ["must be filled"], special_class: ["must be filled", "must be ValidationGroupsTest::SomeClass"]})
290
290
  end
291
291
 
292
292
  # partially invalid.
293
293
  # 2nd group fails.
294
294
  it do
295
- form.validate(username: "Helloween", email: "yo", confirm_password: "9", special_class: SomeClass.new(id: 15)).must_equal false
296
- form.errors.messages.inspect.must_equal "{:email=>[\"size cannot be less than 3\"], :confirm_password=>[\"size cannot be less than 2\"]}"
295
+ _(form.validate(username: "Helloween", email: "yo", confirm_password: "9", special_class: SomeClass.new(id: 15))).must_equal false
296
+ _(form.errors.messages.inspect).must_equal "{:email=>[\"size cannot be less than 3\"], :confirm_password=>[\"size cannot be less than 2\"]}"
297
297
  end
298
298
  # 3rd group fails.
299
299
  it do
300
- form.validate(username: "Helloween", email: "yo!", confirm_password: "9", special_class: SomeClass.new(id: 15)).must_equal false
301
- form.errors.messages.inspect
300
+ _(form.validate(username: "Helloween", email: "yo!", confirm_password: "9", special_class: SomeClass.new(id: 15))).must_equal false
301
+ _(form.errors.messages.inspect)
302
302
  .must_equal "{:confirm_password=>[\"size cannot be less than 2\"], :password=>[\"must be filled\", \"size cannot be less than 2\"]}"
303
303
  end
304
304
  # 4th group with after: fails.
305
305
  it do
306
- form.validate(username: "Helloween", email: "yo!", password: "1", confirm_password: "9", special_class: SomeClass.new(id: 15)).must_equal false
307
- form.errors.messages.inspect.must_equal "{:confirm_password=>[\"size cannot be less than 2\"], :password=>[\"size cannot be less than 2\"]}"
306
+ _(form.validate(username: "Helloween", email: "yo!", password: "1", confirm_password: "9", special_class: SomeClass.new(id: 15))).must_equal false
307
+ _(form.errors.messages.inspect).must_equal "{:confirm_password=>[\"size cannot be less than 2\"], :password=>[\"size cannot be less than 2\"]}"
308
308
  end
309
309
  end
310
310
 
@@ -329,24 +329,23 @@ class ValidationGroupsTest < MiniTest::Spec
329
329
 
330
330
  # valid.
331
331
  it do
332
- form.validate(username: "Nick").must_equal true
333
- form.errors.messages.inspect.must_equal "{}"
332
+ _(form.validate(username: "Nick")).must_equal true
333
+ _(form.errors.messages.inspect).must_equal "{}"
334
334
  end
335
335
 
336
336
  # invalid.
337
337
  it do
338
- form.validate(username: "Fred").must_equal false
339
- form.errors.messages.inspect.must_equal "{:username=>[\"must be equal to Nick\"]}"
338
+ _(form.validate(username: "Fred")).must_equal false
339
+ _(form.errors.messages.inspect).must_equal "{:username=>[\"must be equal to Nick\"]}"
340
340
  end
341
341
  end
342
342
  end
343
343
 
344
344
  #---
345
- #- validation( schema: MySchema )
346
345
  describe "with custom schema" do
347
346
  Session2 = Struct.new(:username, :email, :password)
348
347
 
349
- MySchema = Dry::Schema.Params do
348
+ MyContract = Dry::Schema.Params do
350
349
  config.messages.load_paths << "test/fixtures/dry_error_messages.yml"
351
350
 
352
351
  required(:password).filled(min_size?: 6)
@@ -357,7 +356,7 @@ class ValidationGroupsTest < MiniTest::Spec
357
356
  property :email
358
357
  property :password
359
358
 
360
- validation schema: MySchema do
359
+ validation contract: MyContract do
361
360
  params do
362
361
  required(:username).filled
363
362
  required(:email).filled
@@ -374,21 +373,21 @@ class ValidationGroupsTest < MiniTest::Spec
374
373
  # valid.
375
374
  it do
376
375
  skip "waiting dry-v to add this as feature https://github.com/dry-rb/dry-schema/issues/33"
377
- form.validate(username: "Helloween", email: "yep", password: "extrasafe").must_equal true
378
- form.errors.messages.inspect.must_equal "{}"
376
+ _(form.validate(username: "Helloween", email: "yep", password: "extrasafe")).must_equal true
377
+ _(form.errors.messages.inspect).must_equal "{}"
379
378
  end
380
379
 
381
380
  # invalid.
382
381
  it do
383
382
  skip "waiting dry-v to add this as feature https://github.com/dry-rb/dry-schema/issues/33"
384
- form.validate({}).must_equal false
385
- form.errors.messages.must_equal(password: ["must be filled", "size cannot be less than 6"], username: ["must be filled"], email: ["must be filled", "you're a bad person"])
383
+ _(form.validate({})).must_equal false
384
+ _(form.errors.messages).must_equal(password: ["must be filled", "size cannot be less than 6"], username: ["must be filled"], email: ["must be filled", "you're a bad person"])
386
385
  end
387
386
 
388
387
  it do
389
388
  skip "waiting dry-v to add this as feature https://github.com/dry-rb/dry-schema/issues/33"
390
- form.validate(email: 1).must_equal false
391
- form.errors.messages.inspect.must_equal "{:password=>[\"must be filled\", \"size cannot be less than 6\"], :username=>[\"must be filled\"], :email=>[\"you're a bad person\"]}"
389
+ _(form.validate(email: 1)).must_equal false
390
+ _(form.errors.messages.inspect).must_equal "{:password=>[\"must be filled\", \"size cannot be less than 6\"], :username=>[\"must be filled\"], :email=>[\"you're a bad person\"]}"
392
391
  end
393
392
  end
394
393
 
@@ -465,23 +464,23 @@ class ValidationGroupsTest < MiniTest::Spec
465
464
  "producers" => [{"name" => ""}, {"name" => "something lovely"}]
466
465
  )
467
466
 
468
- result.must_equal false
467
+ _(result).must_equal false
469
468
  # from nested validation
470
- form.errors.messages.must_equal(title: ["you're a bad person"], "hit.title": ["must be filled"], "songs.title": ["must be filled"], "producers.name": ["must be filled"], "band.name": ["must be filled"], "band.label.location": ["must be filled"])
469
+ _(form.errors.messages).must_equal(title: ["you're a bad person"], "hit.title": ["must be filled"], "songs.title": ["must be filled"], "producers.name": ["must be filled"], "band.name": ["must be filled"], "band.label.location": ["must be filled"])
471
470
 
472
471
  # songs have their own validation.
473
- form.songs[0].errors.messages.must_equal(title: ["must be filled"])
472
+ _(form.songs[0].errors.messages).must_equal(title: ["must be filled"])
474
473
  # hit got its own validation group.
475
- form.hit.errors.messages.must_equal(title: ["must be filled"])
474
+ _(form.hit.errors.messages).must_equal(title: ["must be filled"])
476
475
 
477
- form.band.label.errors.messages.must_equal(location: ["must be filled"])
478
- form.band.errors.messages.must_equal(name: ["must be filled"], "label.location": ["must be filled"])
479
- form.producers[0].errors.messages.must_equal(name: ["must be filled"])
476
+ _(form.band.label.errors.messages).must_equal(location: ["must be filled"])
477
+ _(form.band.errors.messages).must_equal(name: ["must be filled"], "label.location": ["must be filled"])
478
+ _(form.producers[0].errors.messages).must_equal(name: ["must be filled"])
480
479
 
481
480
  # TODO: use the same form structure as the top one and do the same test against messages, errors and hints.
482
- form.producers[0].to_result.errors.must_equal(name: ["must be filled"])
483
- form.producers[0].to_result.messages.must_equal(name: ["must be filled"])
484
- form.producers[0].to_result.hints.must_equal({})
481
+ _(form.producers[0].to_result.errors).must_equal(name: ["must be filled"])
482
+ _(form.producers[0].to_result.messages).must_equal(name: ["must be filled"])
483
+ _(form.producers[0].to_result.hints).must_equal({})
485
484
  end
486
485
 
487
486
  # FIXME: fix the "must be filled error"
@@ -494,11 +493,11 @@ class ValidationGroupsTest < MiniTest::Spec
494
493
  "producers" => [{"name" => ""}, {"name" => ""}, {"name" => "something lovely"}]
495
494
  )
496
495
 
497
- result.must_equal false
498
- form.band.errors.full_messages.must_equal ["Name must be filled", "Label Location must be filled"]
499
- form.band.label.errors.full_messages.must_equal ["Location must be filled"]
500
- form.producers.first.errors.full_messages.must_equal ["Name must be filled"]
501
- form.errors.full_messages.must_equal ["Title must be filled", "Hit Title must be filled", "Songs Title must be filled", "Producers Name must be filled", "Band Name must be filled", "Band Label Location must be filled"]
496
+ _(result).must_equal false
497
+ _(form.band.errors.full_messages).must_equal ["Name must be filled", "Label Location must be filled"]
498
+ _(form.band.label.errors.full_messages).must_equal ["Location must be filled"]
499
+ _(form.producers.first.errors.full_messages).must_equal ["Name must be filled"]
500
+ _(form.errors.full_messages).must_equal ["Title must be filled", "Hit Title must be filled", "Songs Title must be filled", "Producers Name must be filled", "Band Name must be filled", "Band Label Location must be filled"]
502
501
  end
503
502
 
504
503
  describe "only 1 nested validation" do
@@ -537,14 +536,14 @@ class ValidationGroupsTest < MiniTest::Spec
537
536
  "producers" => [{"name" => ""}, {"name" => ""}, {"name" => "something lovely"}]
538
537
  )
539
538
 
540
- form.to_result.errors.must_equal(title: ["must be filled"])
541
- form.band.to_result.errors.must_equal(name: ["must be filled"])
542
- form.band.label.to_result.errors.must_equal(location: ["must be filled"])
539
+ _(form.to_result.errors).must_equal(title: ["must be filled"])
540
+ _(form.band.to_result.errors).must_equal(name: ["must be filled"])
541
+ _(form.band.label.to_result.errors).must_equal(location: ["must be filled"])
543
542
 
544
543
  # with locale: "de"
545
- form.to_result.errors(locale: :de).must_equal(title: ["muss abgefüllt sein"])
546
- form.band.to_result.errors(locale: :de).must_equal(name: ["muss abgefüllt sein"])
547
- form.band.label.to_result.errors(locale: :de).must_equal(location: ["muss abgefüllt sein"])
544
+ _(form.to_result.errors(locale: :de)).must_equal(title: ["muss abgefüllt sein"])
545
+ _(form.band.to_result.errors(locale: :de)).must_equal(name: ["muss abgefüllt sein"])
546
+ _(form.band.label.to_result.errors(locale: :de)).must_equal(location: ["muss abgefüllt sein"])
548
547
  end
549
548
  end
550
549
  end
@@ -605,14 +604,14 @@ class ValidationGroupsTest < MiniTest::Spec
605
604
  # valid.
606
605
  it do
607
606
  skip "waiting dry-v to add this as feature https://github.com/dry-rb/dry-schema/issues/33"
608
- form.validate(email: 9).must_equal true
607
+ _(form.validate(email: 9)).must_equal true
609
608
  end
610
609
 
611
610
  # invalid.
612
611
  it do
613
612
  skip "waiting dry-v to add this as feature https://github.com/dry-rb/dry-schema/issues/33"
614
- form.validate({}).must_equal false
615
- form.errors.messages.must_equal email: ["must be filled"], full_name: ["must be filled"]
613
+ _(form.validate({})).must_equal false
614
+ _(form.errors.messages).must_equal email: ["must be filled"], full_name: ["must be filled"]
616
615
  end
617
616
  end
618
617
 
@@ -641,13 +640,13 @@ class ValidationGroupsTest < MiniTest::Spec
641
640
 
642
641
  # valid.
643
642
  it do
644
- form.validate(username: "Strung Out", email: 9).must_equal true
643
+ _(form.validate(username: "Strung Out", email: 9)).must_equal true
645
644
  end
646
645
 
647
646
  # invalid.
648
647
  it do
649
- form.validate(email: 9).must_equal false
650
- form.errors.messages.inspect.must_equal "{:username=>[\"must be filled\"]}"
648
+ _(form.validate(email: 9)).must_equal false
649
+ _(form.errors.messages.inspect).must_equal "{:username=>[\"must be filled\"]}"
651
650
  end
652
651
  end
653
652
 
@@ -671,8 +670,8 @@ class ValidationGroupsTest < MiniTest::Spec
671
670
  let(:form) { OrderForm.new(order.new(company.new)) }
672
671
 
673
672
  it "has company error" do
674
- form.validate(delivery_address: {company: "not int"}).must_equal false
675
- form.errors.messages.must_equal(:"delivery_address.company" => ["must be an integer"])
673
+ _(form.validate(delivery_address: {company: "not int"})).must_equal false
674
+ _(form.errors.messages).must_equal(:"delivery_address.company" => ["must be an integer"])
676
675
  end
677
676
  end
678
677
 
@@ -694,8 +693,8 @@ class ValidationGroupsTest < MiniTest::Spec
694
693
  let(:form) { OrderFormWithForm.new(order.new(company.new)) }
695
694
 
696
695
  it "has company error" do
697
- form.validate(delivery_address: {company: "not int"}).must_equal false
698
- form.errors.messages.must_equal(:"delivery_address.company" => ["must be an integer"])
696
+ _(form.validate(delivery_address: {company: "not int"})).must_equal false
697
+ _(form.errors.messages).must_equal(:"delivery_address.company" => ["must be an integer"])
699
698
  end
700
699
  end
701
700
 
@@ -741,17 +740,17 @@ class ValidationGroupsTest < MiniTest::Spec
741
740
 
742
741
  it "validates fails and shows the correct errors" do
743
742
  form = AlbumForm.new(Album.new(nil, [], nil))
744
- form.validate(
743
+ _(form.validate(
745
744
  "songs" => [
746
745
  {"title" => "One", "enabled" => false},
747
746
  {"title" => nil, "enabled" => false},
748
747
  {"title" => "Three", "enabled" => false}
749
748
  ],
750
749
  "artist" => {"last_name" => nil}
751
- ).must_equal false
752
- form.songs.size.must_equal 3
750
+ )).must_equal false
751
+ _(form.songs.size).must_equal 3
753
752
 
754
- form.errors.messages.must_equal(
753
+ _(form.errors.messages).must_equal(
755
754
  :songs => ["must have at least one enabled song"],
756
755
  :artist => ["must have last name"],
757
756
  :"songs.title" => ["must be filled"]
@@ -785,26 +784,26 @@ class ValidationGroupsTest < MiniTest::Spec
785
784
  it "using params" do
786
785
  model = Foo.new
787
786
  form = ParamsForm.new(model)
788
- form.validate(age: "99").must_equal true
787
+ _(form.validate(age: "99")).must_equal true
789
788
  form.sync
790
- model.age.must_equal "99"
789
+ _(model.age).must_equal "99"
791
790
 
792
791
  form = ParamsForm.new(Foo.new)
793
- form.validate(age: "1000").must_equal false
794
- form.errors.messages.must_equal age: ["value exceeded"]
792
+ _(form.validate(age: "1000")).must_equal false
793
+ _(form.errors.messages).must_equal age: ["value exceeded"]
795
794
  end
796
795
 
797
796
  it "using schema" do
798
797
  model = Foo.new
799
798
  form = SchemaForm.new(model)
800
- form.validate(age: "99").must_equal false
801
- form.validate(age: 99).must_equal true
799
+ _(form.validate(age: "99")).must_equal false
800
+ _(form.validate(age: 99)).must_equal true
802
801
  form.sync
803
- model.age.must_equal 99
802
+ _(model.age).must_equal 99
804
803
 
805
804
  form = SchemaForm.new(Foo.new)
806
- form.validate(age: 1000).must_equal false
807
- form.errors.messages.must_equal age: ["value exceeded"]
805
+ _(form.validate(age: 1000)).must_equal false
806
+ _(form.errors.messages).must_equal age: ["value exceeded"]
808
807
  end
809
808
  end
810
809