simple_params 1.6.9 → 2.0.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 +5 -13
- data/.bundle/install.log +30 -0
- data/.gitignore +8 -0
- data/.ruby-version +1 -1
- data/Appraisals +29 -0
- data/Gemfile.lock +26 -22
- data/README.md +17 -0
- data/Rakefile +2 -0
- data/gemfiles/.bundle/config +2 -0
- data/gemfiles/activemodel_3.gemfile +8 -0
- data/gemfiles/activemodel_3.gemfile.lock +82 -0
- data/gemfiles/activemodel_4.gemfile +8 -0
- data/gemfiles/activemodel_4.gemfile.lock +82 -0
- data/gemfiles/activemodel_5.gemfile +8 -0
- data/gemfiles/activemodel_5.gemfile.lock +80 -0
- data/gemfiles/activemodel_5_1.gemfile +8 -0
- data/gemfiles/activemodel_5_1.gemfile.lock +78 -0
- data/gemfiles/activemodel_5_2.gemfile +8 -0
- data/gemfiles/activemodel_5_2.gemfile.lock +78 -0
- data/gemfiles/activemodel_6_0.gemfile +8 -0
- data/gemfiles/activemodel_6_0.gemfile.lock +80 -0
- data/lib/simple_params/concerns/hash_helpers.rb +1 -1
- data/lib/simple_params/errors.rb +21 -12
- data/lib/simple_params/nested_class_list.rb +1 -1
- data/lib/simple_params/nested_errors.rb +5 -1
- data/lib/simple_params/version.rb +1 -1
- data/simple_params.gemspec +14 -13
- data/spec/errors_spec.rb +34 -236
- data/spec/nested_errors_spec.rb +19 -141
- data/spec/rails_integration_spec.rb +27 -1
- metadata +57 -27
data/spec/errors_spec.rb
CHANGED
@@ -92,154 +92,56 @@ describe SimpleParams::Errors do
|
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|
95
|
-
describe
|
96
|
-
it "
|
95
|
+
describe '[]', getter: true do
|
96
|
+
it "gets the errors for the provided key" do
|
97
97
|
errors = SimpleParams::Errors.new(self)
|
98
|
-
errors
|
99
|
-
errors
|
100
|
-
end
|
101
|
-
|
102
|
-
it "sets the error with the provided key" do
|
103
|
-
errors = SimpleParams::Errors.new(self)
|
104
|
-
errors.set(:foo, "omg")
|
105
|
-
errors.messages.should eq({ foo: "omg" })
|
106
|
-
end
|
107
|
-
|
108
|
-
it "values returns an array of messages" do
|
109
|
-
errors = SimpleParams::Errors.new(self)
|
110
|
-
errors.set(:foo, "omg")
|
111
|
-
errors.set(:baz, "zomg")
|
112
|
-
errors.values.should eq(["omg", "zomg"])
|
113
|
-
end
|
114
|
-
|
115
|
-
it "keys returns the error keys" do
|
116
|
-
errors = SimpleParams::Errors.new(self)
|
117
|
-
errors.set(:foo, "omg")
|
118
|
-
errors.set(:baz, "zomg")
|
119
|
-
errors.keys.should eq([:foo, :baz])
|
120
|
-
end
|
121
|
-
|
122
|
-
describe "setting on model" do
|
123
|
-
it "assign error" do
|
124
|
-
person = Person.new
|
125
|
-
person.errors[:name] = 'should not be nil'
|
126
|
-
person.errors[:name].should eq(["should not be nil"])
|
127
|
-
end
|
128
|
-
|
129
|
-
it "add an error message on a specific attribute" do
|
130
|
-
person = Person.new
|
131
|
-
person.errors.add(:name, "can not be blank")
|
132
|
-
person.errors[:name].should eq(["can not be blank"])
|
133
|
-
end
|
134
|
-
|
135
|
-
it "add an error with a symbol" do
|
136
|
-
person = Person.new
|
137
|
-
person.errors.add(:name, :blank)
|
138
|
-
message = person.errors.generate_message(:name, :blank)
|
139
|
-
person.errors[:name].should eq([message])
|
140
|
-
end
|
141
|
-
|
142
|
-
it "add an error with a proc" do
|
143
|
-
person = Person.new
|
144
|
-
message = Proc.new { "can not be blank" }
|
145
|
-
person.errors.add(:name, message)
|
146
|
-
person.errors[:name].should eq(["can not be blank"])
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
describe "setting and getting nested error model", nested_model: true do
|
152
|
-
it "can access error model" do
|
153
|
-
person = Person.new
|
154
|
-
dog = person.dog
|
155
|
-
dog_errors = dog.errors
|
156
|
-
person.errors[:dog].should eq(dog_errors)
|
157
|
-
end
|
158
|
-
|
159
|
-
it "can add to nested errors through []" do
|
160
|
-
person = Person.new
|
161
|
-
person.errors[:dog] = 'should not be nil'
|
162
|
-
person.dog.errors[:base].should eq(['should not be nil'])
|
163
|
-
end
|
164
|
-
|
165
|
-
it "can add to nested errors through add" do
|
166
|
-
person = Person.new
|
167
|
-
person.errors.add(:dog, 'should not be nil')
|
168
|
-
person.dog.errors[:base].should eq(['should not be nil'])
|
98
|
+
errors.add(:foo, "omg")
|
99
|
+
errors[:foo].should eq(["omg"])
|
169
100
|
end
|
170
101
|
|
171
|
-
it "
|
102
|
+
it "gets model with nested attributes" do
|
172
103
|
person = Person.new
|
173
|
-
person.errors
|
174
|
-
person.errors
|
175
|
-
person.
|
176
|
-
end
|
177
|
-
|
178
|
-
it "can add multiple errors to nested errors through add" do
|
179
|
-
person = Person.new
|
180
|
-
person.errors.add(:dog, 'should not be nil')
|
181
|
-
person.errors.add(:dog, 'must be cute')
|
182
|
-
person.dog.errors[:base].should eq(['should not be nil', 'must be cute'])
|
104
|
+
person.errors.add(:name, "can not be blank")
|
105
|
+
person.errors.add(:name, "can not be nil")
|
106
|
+
person.errors[:name].should eq(["can not be blank", "can not be nil"])
|
183
107
|
end
|
184
108
|
|
185
|
-
it "
|
109
|
+
it "gets nested model errors" do
|
186
110
|
person = Person.new
|
187
|
-
person.errors
|
188
|
-
person.
|
111
|
+
person.dog.errors.add(:breed, "can not be blank")
|
112
|
+
person.errors[:dog][:breed].should eq(["can not be blank"])
|
189
113
|
end
|
190
114
|
|
191
|
-
it "
|
115
|
+
it "gets nested model errors" do
|
192
116
|
person = Person.new
|
193
|
-
person.errors
|
194
|
-
person.
|
117
|
+
person.cats.first.errors.add(:name, "can not be blank")
|
118
|
+
person.errors[:cats][0][:name].should eq(["can not be blank"])
|
195
119
|
end
|
196
120
|
end
|
197
121
|
|
198
|
-
describe
|
199
|
-
it "
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
person.errors[:cats][0].should eq(cat_errors)
|
204
|
-
end
|
205
|
-
|
206
|
-
it "can add to nested errors through []" do
|
207
|
-
person = Person.new
|
208
|
-
person.errors[:cats].first[:base] = 'should not be nil'
|
209
|
-
person.errors[:cats].first[:base].should eq(['should not be nil'])
|
210
|
-
person.cats.first.errors[:base].should eq(['should not be nil'])
|
211
|
-
end
|
212
|
-
|
213
|
-
it "can add to nested errors through add" do
|
214
|
-
person = Person.new
|
215
|
-
person.errors[:cats].first.add(:age, 'should not be nil')
|
216
|
-
person.cats.first.errors[:age].should eq(['should not be nil'])
|
217
|
-
end
|
218
|
-
|
219
|
-
it "can add multiple errors to nested errors through []" do
|
220
|
-
person = Person.new
|
221
|
-
person.errors[:cats].first[:name] = 'should not be nil'
|
222
|
-
person.errors[:cats].first[:name] = 'must be cute'
|
223
|
-
person.cats.first.errors[:name].should eq(['should not be nil', 'must be cute'])
|
122
|
+
describe '[]=', setter: true do
|
123
|
+
it "sets the errors for the provided key" do
|
124
|
+
errors = SimpleParams::Errors.new(self)
|
125
|
+
errors[:foo] = "omg"
|
126
|
+
errors[:foo].should eq(["omg"])
|
224
127
|
end
|
225
128
|
|
226
|
-
it "
|
129
|
+
it "sets model with nested attributes" do
|
227
130
|
person = Person.new
|
228
|
-
person.errors[:
|
229
|
-
person.errors[:
|
230
|
-
person.cats.first.errors[:name].should eq(['should not be nil', 'must be cute'])
|
131
|
+
person.errors[:name] = "can not be blank"
|
132
|
+
person.errors[:name].should eq(["can not be blank"])
|
231
133
|
end
|
232
134
|
|
233
|
-
it "
|
135
|
+
it "sets nested model errors" do
|
234
136
|
person = Person.new
|
235
|
-
person.errors[:
|
236
|
-
person.
|
137
|
+
person.dog.errors[:breed] = "can not be blank"
|
138
|
+
person.errors[:dog][:breed].should eq(["can not be blank"])
|
237
139
|
end
|
238
140
|
|
239
|
-
it "
|
141
|
+
it "sets nested model errors" do
|
240
142
|
person = Person.new
|
241
|
-
person.
|
242
|
-
person.
|
143
|
+
person.cats.first.errors[:name] = "can not be blank"
|
144
|
+
person.errors[:cats][0][:name].should eq(["can not be blank"])
|
243
145
|
end
|
244
146
|
end
|
245
147
|
|
@@ -292,51 +194,6 @@ describe SimpleParams::Errors do
|
|
292
194
|
end
|
293
195
|
end
|
294
196
|
|
295
|
-
describe "#added?", added: true do
|
296
|
-
it "added? detects if a specific error was added to the object" do
|
297
|
-
person = Person.new
|
298
|
-
person.errors.add(:name, "can not be blank")
|
299
|
-
person.errors.added?(:name, "can not be blank").should be_truthy
|
300
|
-
end
|
301
|
-
|
302
|
-
it "added? handles symbol message" do
|
303
|
-
person = Person.new
|
304
|
-
person.errors.add(:name, :blank)
|
305
|
-
person.errors.added?(:name, :blank).should be_truthy
|
306
|
-
end
|
307
|
-
|
308
|
-
it "added? handles proc messages" do
|
309
|
-
person = Person.new
|
310
|
-
message = Proc.new { "can not be blank" }
|
311
|
-
person.errors.add(:name, message)
|
312
|
-
person.errors.added?(:name, message).should be_truthy
|
313
|
-
end
|
314
|
-
|
315
|
-
it "added? defaults message to :invalid" do
|
316
|
-
person = Person.new
|
317
|
-
person.errors.add(:name)
|
318
|
-
person.errors.added?(:name).should be_truthy
|
319
|
-
end
|
320
|
-
|
321
|
-
it "added? matches the given message when several errors are present for the same attribute" do
|
322
|
-
person = Person.new
|
323
|
-
person.errors.add(:name, "can not be blank")
|
324
|
-
person.errors.add(:name, "is invalid")
|
325
|
-
person.errors.added?(:name, "can not be blank").should be_truthy
|
326
|
-
end
|
327
|
-
|
328
|
-
it "added? returns false when no errors are present" do
|
329
|
-
person = Person.new
|
330
|
-
person.errors.added?(:name).should_not be_truthy
|
331
|
-
end
|
332
|
-
|
333
|
-
it "added? returns false when checking a nonexisting error and other errors are present for the given attribute" do
|
334
|
-
person = Person.new
|
335
|
-
person.errors.add(:name, "is invalid")
|
336
|
-
person.errors.added?(:name, "can not be blank").should_not be_truthy
|
337
|
-
end
|
338
|
-
end
|
339
|
-
|
340
197
|
describe "#size", size: true do
|
341
198
|
it "size calculates the number of error messages" do
|
342
199
|
person = Person.new
|
@@ -394,7 +251,7 @@ describe SimpleParams::Errors do
|
|
394
251
|
person = Person.new
|
395
252
|
person.errors.add(:name, "can not be blank")
|
396
253
|
person.dog.errors.add(:breed, "can not be nil")
|
397
|
-
person.errors.to_hash.should eq({
|
254
|
+
person.errors.to_hash.should eq({
|
398
255
|
name: ["can not be blank"],
|
399
256
|
dog: {
|
400
257
|
breed: ["can not be nil"]
|
@@ -408,7 +265,7 @@ describe SimpleParams::Errors do
|
|
408
265
|
person.errors.add(:name, "can not be blank")
|
409
266
|
person.dog.errors.add(:base, :invalid)
|
410
267
|
person.dog.errors.add(:breed, "can not be nil")
|
411
|
-
person.errors.to_hash.should eq({
|
268
|
+
person.errors.to_hash.should eq({
|
412
269
|
base: ["is invalid"],
|
413
270
|
name: ["can not be blank"],
|
414
271
|
dog: {
|
@@ -425,7 +282,7 @@ describe SimpleParams::Errors do
|
|
425
282
|
person.dog.errors.add(:base, :invalid)
|
426
283
|
person.dog.errors.add(:breed, "can not be nil")
|
427
284
|
person.cats.first.errors.add(:name, "can not be blank")
|
428
|
-
person.errors.to_hash.should eq({
|
285
|
+
person.errors.to_hash.should eq({
|
429
286
|
base: ["is invalid"],
|
430
287
|
name: ["can not be blank"],
|
431
288
|
dog: {
|
@@ -454,13 +311,13 @@ describe SimpleParams::Errors do
|
|
454
311
|
person.errors[:name] = 'can not be nil'
|
455
312
|
person.errors[:name].should eq(["can not be nil"])
|
456
313
|
person.errors.as_json(full_messages: true).should eq({ name: ["name can not be nil"] })
|
457
|
-
end
|
314
|
+
end
|
458
315
|
|
459
316
|
it "handles nested attributes without full_messages" do
|
460
317
|
person = Person.new
|
461
318
|
person.errors[:name] = 'can not be nil'
|
462
319
|
person.dog.errors[:breed] = 'is invalid'
|
463
|
-
person.errors.as_json.should eq({
|
320
|
+
person.errors.as_json.should eq({
|
464
321
|
name: ["can not be nil"],
|
465
322
|
dog: {
|
466
323
|
breed: ["is invalid"]
|
@@ -472,7 +329,7 @@ describe SimpleParams::Errors do
|
|
472
329
|
person = Person.new
|
473
330
|
person.errors[:name] = 'can not be nil'
|
474
331
|
person.dog.errors[:breed] = 'is invalid'
|
475
|
-
person.errors.as_json(full_messages: true).should eq({
|
332
|
+
person.errors.as_json(full_messages: true).should eq({
|
476
333
|
name: ["name can not be nil"],
|
477
334
|
dog: {
|
478
335
|
breed: ["breed is invalid"]
|
@@ -520,63 +377,4 @@ describe SimpleParams::Errors do
|
|
520
377
|
person.errors.full_message(:name_test, "can not be blank").should eq("name_test can not be blank")
|
521
378
|
end
|
522
379
|
end
|
523
|
-
|
524
|
-
describe "#generate_message", generate_message: true do
|
525
|
-
it "generate_message works without i18n_scope" do
|
526
|
-
person = Person.new
|
527
|
-
Person.should_not respond_to(:i18n_scope)
|
528
|
-
expect {
|
529
|
-
person.errors.generate_message(:name, :blank)
|
530
|
-
}.to_not raise_error
|
531
|
-
end
|
532
|
-
end
|
533
|
-
|
534
|
-
describe "#adds_on_empty", add_on_empty: true do
|
535
|
-
it "add_on_empty generates message" do
|
536
|
-
person = Person.new
|
537
|
-
person.errors.should_receive(:generate_message).with(:name, :empty, {})
|
538
|
-
person.errors.add_on_empty :name
|
539
|
-
end
|
540
|
-
|
541
|
-
it "add_on_empty generates message for multiple attributes" do
|
542
|
-
person = Person.new
|
543
|
-
person.errors.should_receive(:generate_message).with(:name, :empty, {})
|
544
|
-
person.errors.should_receive(:generate_message).with(:age, :empty, {})
|
545
|
-
person.errors.add_on_empty [:name, :age]
|
546
|
-
end
|
547
|
-
|
548
|
-
it "add_on_empty generates message with custom default message" do
|
549
|
-
person = Person.new
|
550
|
-
person.errors.should_receive(:generate_message).with(:name, :empty, { message: 'custom' })
|
551
|
-
person.errors.add_on_empty :name, message: 'custom'
|
552
|
-
end
|
553
|
-
|
554
|
-
it "add_on_empty generates message with empty string value" do
|
555
|
-
person = Person.new
|
556
|
-
person.name = ''
|
557
|
-
person.errors.should_receive(:generate_message).with(:name, :empty, {})
|
558
|
-
person.errors.add_on_empty :name
|
559
|
-
end
|
560
|
-
end
|
561
|
-
|
562
|
-
describe "#adds_on_blank", add_on_blank: true do
|
563
|
-
it "add_on_blank generates message" do
|
564
|
-
person = Person.new
|
565
|
-
person.errors.should_receive(:generate_message).with(:name, :blank, {})
|
566
|
-
person.errors.add_on_blank :name
|
567
|
-
end
|
568
|
-
|
569
|
-
it "add_on_blank generates message for multiple attributes" do
|
570
|
-
person = Person.new
|
571
|
-
person.errors.should_receive(:generate_message).with(:name, :blank, {})
|
572
|
-
person.errors.should_receive(:generate_message).with(:age, :blank, {})
|
573
|
-
person.errors.add_on_blank [:name, :age]
|
574
|
-
end
|
575
|
-
|
576
|
-
it "add_on_blank generates message with custom default message" do
|
577
|
-
person = Person.new
|
578
|
-
person.errors.should_receive(:generate_message).with(:name, :blank, { message: 'custom' })
|
579
|
-
person.errors.add_on_blank :name, message: 'custom'
|
580
|
-
end
|
581
|
-
end
|
582
380
|
end
|
data/spec/nested_errors_spec.rb
CHANGED
@@ -53,59 +53,32 @@ describe SimpleParams::NestedErrors do
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
describe
|
57
|
-
it "
|
58
|
-
errors = SimpleParams::
|
59
|
-
errors
|
60
|
-
errors
|
56
|
+
describe '[]', getter: true do
|
57
|
+
it "gets the errors for the provided key" do
|
58
|
+
errors = SimpleParams::NestedErrors.new(self)
|
59
|
+
errors.add(:foo, "omg")
|
60
|
+
errors[:foo].should eq(["omg"])
|
61
61
|
end
|
62
62
|
|
63
|
-
it "
|
64
|
-
|
65
|
-
errors.
|
66
|
-
errors.
|
63
|
+
it "gets model errors" do
|
64
|
+
car = Car.new
|
65
|
+
car.errors.add(:make, "can not be blank")
|
66
|
+
car.errors.add(:make, "can not be nil")
|
67
|
+
car.errors[:make].should eq(["can not be blank", "can not be nil"])
|
67
68
|
end
|
69
|
+
end
|
68
70
|
|
69
|
-
|
71
|
+
describe '[]=', setter: true do
|
72
|
+
it "sets the errors for the provided key" do
|
70
73
|
errors = SimpleParams::Errors.new(self)
|
71
|
-
errors
|
72
|
-
errors.
|
73
|
-
errors.values.should eq(["omg", "zomg"])
|
74
|
+
errors[:foo] = "omg"
|
75
|
+
errors[:foo].should eq(["omg"])
|
74
76
|
end
|
75
77
|
|
76
|
-
it "
|
77
|
-
|
78
|
-
errors
|
79
|
-
errors.
|
80
|
-
errors.keys.should eq([:foo, :baz])
|
81
|
-
end
|
82
|
-
|
83
|
-
describe "setting on model" do
|
84
|
-
it "assign error" do
|
85
|
-
car = Car.new
|
86
|
-
car.errors[:make] = 'should not be nil'
|
87
|
-
car.errors[:make].should eq(["should not be nil"])
|
88
|
-
end
|
89
|
-
|
90
|
-
it "add an error message on a specific attribute" do
|
91
|
-
car = Car.new
|
92
|
-
car.errors.add(:make, "can not be blank")
|
93
|
-
car.errors[:make].should eq(["can not be blank"])
|
94
|
-
end
|
95
|
-
|
96
|
-
it "add an error with a symbol" do
|
97
|
-
car = Car.new
|
98
|
-
car.errors.add(:make, :blank)
|
99
|
-
message = car.errors.generate_message(:make, :blank)
|
100
|
-
car.errors[:make].should eq([message])
|
101
|
-
end
|
102
|
-
|
103
|
-
it "add an error with a proc" do
|
104
|
-
car = Car.new
|
105
|
-
message = Proc.new { "can not be blank" }
|
106
|
-
car.errors.add(:make, message)
|
107
|
-
car.errors[:make].should eq(["can not be blank"])
|
108
|
-
end
|
78
|
+
it "sets model errors" do
|
79
|
+
car = Car.new
|
80
|
+
car.errors[:make] = "can not be blank"
|
81
|
+
car.errors[:make].should eq(["can not be blank"])
|
109
82
|
end
|
110
83
|
end
|
111
84
|
|
@@ -136,51 +109,6 @@ describe SimpleParams::NestedErrors do
|
|
136
109
|
end
|
137
110
|
end
|
138
111
|
|
139
|
-
describe "#added?", added: true do
|
140
|
-
it "added? detects if a specific error was added to the object" do
|
141
|
-
car = Car.new
|
142
|
-
car.errors.add(:make, "can not be blank")
|
143
|
-
car.errors.added?(:make, "can not be blank").should be_truthy
|
144
|
-
end
|
145
|
-
|
146
|
-
it "added? handles symbol message" do
|
147
|
-
car = Car.new
|
148
|
-
car.errors.add(:make, :blank)
|
149
|
-
car.errors.added?(:make, :blank).should be_truthy
|
150
|
-
end
|
151
|
-
|
152
|
-
it "added? handles proc messages" do
|
153
|
-
car = Car.new
|
154
|
-
message = Proc.new { "can not be blank" }
|
155
|
-
car.errors.add(:make, message)
|
156
|
-
car.errors.added?(:make, message).should be_truthy
|
157
|
-
end
|
158
|
-
|
159
|
-
it "added? defaults message to :invalid" do
|
160
|
-
car = Car.new
|
161
|
-
car.errors.add(:make)
|
162
|
-
car.errors.added?(:make).should be_truthy
|
163
|
-
end
|
164
|
-
|
165
|
-
it "added? matches the given message when several errors are present for the same attribute" do
|
166
|
-
car = Car.new
|
167
|
-
car.errors.add(:make, "can not be blank")
|
168
|
-
car.errors.add(:make, "is invalid")
|
169
|
-
car.errors.added?(:make, "can not be blank").should be_truthy
|
170
|
-
end
|
171
|
-
|
172
|
-
it "added? returns false when no errors are present" do
|
173
|
-
car = Car.new
|
174
|
-
car.errors.added?(:make).should_not be_truthy
|
175
|
-
end
|
176
|
-
|
177
|
-
it "added? returns false when checking a nonexisting error and other errors are present for the given attribute" do
|
178
|
-
car = Car.new
|
179
|
-
car.errors.add(:make, "is invalid")
|
180
|
-
car.errors.added?(:make, "can not be blank").should_not be_truthy
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
112
|
describe "#size", size: true do
|
185
113
|
it "size calculates the number of error messages" do
|
186
114
|
car = Car.new
|
@@ -205,7 +133,6 @@ describe SimpleParams::NestedErrors do
|
|
205
133
|
car.errors.add(:make, "can not be nil")
|
206
134
|
car.errors.to_s.should eq("make can not be blank, make can not be nil")
|
207
135
|
end
|
208
|
-
|
209
136
|
end
|
210
137
|
|
211
138
|
describe "#to_hash", to_hash: true do
|
@@ -281,53 +208,4 @@ describe SimpleParams::NestedErrors do
|
|
281
208
|
}.to_not raise_error
|
282
209
|
end
|
283
210
|
end
|
284
|
-
|
285
|
-
describe "#adds_on_empty", add_on_empty: true do
|
286
|
-
it "add_on_empty generates message" do
|
287
|
-
car = Car.new
|
288
|
-
car.errors.should_receive(:generate_message).with(:make, :empty, {})
|
289
|
-
car.errors.add_on_empty :make
|
290
|
-
end
|
291
|
-
|
292
|
-
it "add_on_empty generates message for multiple attributes" do
|
293
|
-
car = Car.new
|
294
|
-
car.errors.should_receive(:generate_message).with(:make, :empty, {})
|
295
|
-
car.errors.should_receive(:generate_message).with(:model, :empty, {})
|
296
|
-
car.errors.add_on_empty [:make, :model]
|
297
|
-
end
|
298
|
-
|
299
|
-
it "add_on_empty generates message with custom default message" do
|
300
|
-
car = Car.new
|
301
|
-
car.errors.should_receive(:generate_message).with(:make, :empty, { message: 'custom' })
|
302
|
-
car.errors.add_on_empty :make, message: 'custom'
|
303
|
-
end
|
304
|
-
|
305
|
-
it "add_on_empty generates message with empty string value" do
|
306
|
-
car = Car.new
|
307
|
-
car.make = ''
|
308
|
-
car.errors.should_receive(:generate_message).with(:make, :empty, {})
|
309
|
-
car.errors.add_on_empty :make
|
310
|
-
end
|
311
|
-
end
|
312
|
-
|
313
|
-
describe "#adds_on_blank", add_on_blank: true do
|
314
|
-
it "add_on_blank generates message" do
|
315
|
-
car = Car.new
|
316
|
-
car.errors.should_receive(:generate_message).with(:make, :blank, {})
|
317
|
-
car.errors.add_on_blank :make
|
318
|
-
end
|
319
|
-
|
320
|
-
it "add_on_blank generates message for multiple attributes" do
|
321
|
-
car = Car.new
|
322
|
-
car.errors.should_receive(:generate_message).with(:make, :blank, {})
|
323
|
-
car.errors.should_receive(:generate_message).with(:model, :blank, {})
|
324
|
-
car.errors.add_on_blank [:make, :model]
|
325
|
-
end
|
326
|
-
|
327
|
-
it "add_on_blank generates message with custom default message" do
|
328
|
-
car = Car.new
|
329
|
-
car.errors.should_receive(:generate_message).with(:make, :blank, { message: 'custom' })
|
330
|
-
car.errors.add_on_blank :make, message: 'custom'
|
331
|
-
end
|
332
|
-
end
|
333
211
|
end
|