@@ -176,7 +176,7 @@ public function it_ignores_a_specific_attribute_with_the_given_value()
176
176
}
177
177
178
178
/** @test */
179
- public function it_returns_a_default_error_message ()
179
+ public function it_returns_a_default_error_message_when_validating_a_single_translation ()
180
180
{
181
181
$ rules = [
182
182
'form_slug ' => "{$ this ->rule }: {$ this ->table },slug " ,
@@ -214,18 +214,146 @@ public function it_returns_a_default_error_message()
214
214
$ this ->assertEquals ($ expectedNameError , $ returnedNameArrayError );
215
215
}
216
216
217
+ /** @test */
218
+ public function it_returns_a_default_error_message_when_validating_an_array ()
219
+ {
220
+ $ rules = [
221
+ 'form_slug.* ' => "{$ this ->rule }: {$ this ->table },slug " ,
222
+ 'form_name.* ' => new UniqueTranslationRule ($ this ->table , 'name ' ),
223
+ ];
224
+
225
+ $ this ->createRoute ('test ' , $ rules );
226
+
227
+ $ this ->post ('test ' , [
228
+ 'form_slug ' => ['en ' => 'slug-en ' ],
229
+ 'form_name ' => ['en ' => 'name-en ' ],
230
+ ]);
231
+
232
+ $ expectedSlugError = trans ('validation.unique ' , ['attribute ' => 'form slug ' ]);
233
+ $ expectedNameError = trans ('validation.unique ' , ['attribute ' => 'form name ' ]);
234
+
235
+ $ errors = session ('errors ' );
236
+
237
+ $ returnedSlugError = $ errors ->first ('form_slug ' );
238
+ $ returnedNameError = $ errors ->first ('form_name ' );
239
+
240
+ $ this ->assertNotEmpty ($ returnedSlugError );
241
+ $ this ->assertNotEmpty ($ returnedNameError );
242
+
243
+ $ this ->assertEquals ($ expectedSlugError , $ returnedSlugError );
244
+ $ this ->assertEquals ($ expectedNameError , $ returnedNameError );
245
+
246
+ $ returnedSlugArrayError = $ errors ->first ('form_slug.en ' );
247
+ $ returnedNameArrayError = $ errors ->first ('form_name.en ' );
248
+
249
+ $ this ->assertNotEmpty ($ returnedSlugArrayError );
250
+ $ this ->assertNotEmpty ($ returnedNameArrayError );
251
+
252
+ $ this ->assertEquals ($ expectedSlugError , $ returnedSlugArrayError );
253
+ $ this ->assertEquals ($ expectedNameError , $ returnedNameArrayError );
254
+ }
255
+
256
+ /** @test */
257
+ public function it_returns_a_custom_error_message_when_validating_a_single_translation ()
258
+ {
259
+ $ rules = [
260
+ 'form_slug ' => "{$ this ->rule }: {$ this ->table },slug " ,
261
+ 'form_name ' => new UniqueTranslationRule ($ this ->table , 'name ' ),
262
+ ];
263
+
264
+ $ messages = [
265
+ "form_slug. {$ this ->rule }" => 'Custom slug message for :attribute. ' ,
266
+ "form_name. {$ this ->rule }" => 'Custom name message for :attribute. ' ,
267
+ ];
268
+
269
+ $ this ->createRoute ('test ' , $ rules , $ messages );
270
+
271
+ $ this ->post ('test ' , [
272
+ 'form_slug ' => 'slug-en ' ,
273
+ 'form_name ' => 'name-en ' ,
274
+ ]);
275
+
276
+ $ expectedSlugError = 'Custom slug message for form slug. ' ;
277
+ $ expectedNameError = 'Custom name message for form name. ' ;
278
+
279
+ $ errors = session ('errors ' );
280
+
281
+ $ returnedSlugError = $ errors ->first ('form_slug ' );
282
+ $ returnedNameError = $ errors ->first ('form_name ' );
283
+
284
+ $ this ->assertNotEmpty ($ returnedSlugError );
285
+ $ this ->assertNotEmpty ($ returnedNameError );
286
+
287
+ $ this ->assertEquals ($ expectedSlugError , $ returnedSlugError );
288
+ $ this ->assertEquals ($ expectedNameError , $ returnedNameError );
289
+
290
+ $ returnedSlugArrayError = $ errors ->first ('form_slug.en ' );
291
+ $ returnedNameArrayError = $ errors ->first ('form_name.en ' );
292
+
293
+ $ this ->assertNotEmpty ($ returnedSlugArrayError );
294
+ $ this ->assertNotEmpty ($ returnedNameArrayError );
295
+
296
+ $ this ->assertEquals ($ expectedSlugError , $ returnedSlugArrayError );
297
+ $ this ->assertEquals ($ expectedNameError , $ returnedNameArrayError );
298
+ }
299
+
300
+ /** @test */
301
+ public function it_returns_a_custom_error_message_when_validating_an_array ()
302
+ {
303
+ $ rules = [
304
+ 'form_slug.* ' => "{$ this ->rule }: {$ this ->table },slug " ,
305
+ 'form_name.* ' => new UniqueTranslationRule ($ this ->table , 'name ' ),
306
+ ];
307
+
308
+ $ messages = [
309
+ "form_slug.*. {$ this ->rule }" => 'Custom slug message for :attribute. ' ,
310
+ "form_name.*. {$ this ->rule }" => 'Custom name message for :attribute. ' ,
311
+ ];
312
+
313
+ $ this ->createRoute ('test ' , $ rules , $ messages );
314
+
315
+ $ this ->post ('test ' , [
316
+ 'form_slug ' => ['en ' => 'slug-en ' ],
317
+ 'form_name ' => ['en ' => 'name-en ' ],
318
+ ]);
319
+
320
+ $ expectedSlugError = 'Custom slug message for form slug. ' ;
321
+ $ expectedNameError = 'Custom name message for form name. ' ;
322
+
323
+ $ errors = session ('errors ' );
324
+
325
+ $ returnedSlugError = $ errors ->first ('form_slug ' );
326
+ $ returnedNameError = $ errors ->first ('form_name ' );
327
+
328
+ $ this ->assertNotEmpty ($ returnedSlugError );
329
+ $ this ->assertNotEmpty ($ returnedNameError );
330
+
331
+ $ this ->assertEquals ($ expectedSlugError , $ returnedSlugError );
332
+ $ this ->assertEquals ($ expectedNameError , $ returnedNameError );
333
+
334
+ $ returnedSlugArrayError = $ errors ->first ('form_slug.en ' );
335
+ $ returnedNameArrayError = $ errors ->first ('form_name.en ' );
336
+
337
+ $ this ->assertNotEmpty ($ returnedSlugArrayError );
338
+ $ this ->assertNotEmpty ($ returnedNameArrayError );
339
+
340
+ $ this ->assertEquals ($ expectedSlugError , $ returnedSlugArrayError );
341
+ $ this ->assertEquals ($ expectedNameError , $ returnedNameArrayError );
342
+ }
343
+
217
344
/**
218
345
* Create a test route.
219
346
*
220
347
* @param string $url
221
348
* @param array $rules
349
+ * @param array $messages
222
350
*
223
351
* @return void
224
352
*/
225
- protected function createRoute ($ url , $ rules )
353
+ protected function createRoute ($ url , $ rules, $ messages = [] )
226
354
{
227
- Route::post ($ url , function () use ($ rules ) {
228
- return request ()->validate ($ rules );
355
+ Route::post ($ url , function () use ($ rules, $ messages ) {
356
+ return request ()->validate ($ rules, $ messages );
229
357
});
230
358
}
231
359
}
0 commit comments