|
4 | 4 |
|
5 | 5 | use Datomatic\LaravelEnumHelper\Exceptions\TranslationMissing;
|
6 | 6 | use Datomatic\LaravelEnumHelper\Tests\Support\Enums\Status;
|
| 7 | +use Datomatic\LaravelEnumHelper\Tests\Support\Enums\StatusFallbackLocale; |
7 | 8 | use Datomatic\LaravelEnumHelper\Tests\Support\Enums\StatusInt;
|
8 | 9 | use Datomatic\LaravelEnumHelper\Tests\Support\Enums\StatusPascalCase;
|
9 | 10 | use Datomatic\LaravelEnumHelper\Tests\Support\Enums\StatusPascalCaseWithoutTranslation;
|
|
43 | 44 | expect($enum->description())->toBe($result);
|
44 | 45 | })->with([
|
45 | 46 | 'translation' => [StatusString::NO_RESPONSE, 'No response'],
|
46 |
| - 'fallback translation' => [Status::PENDING, 'Await decision'], |
47 |
| - 'method definition' => [StatusInt::NO_RESPONSE, 'No response'], |
| 47 | + 'fallback translation' => [StatusFallbackLocale::PENDING, 'FB Await decision'], |
| 48 | + 'method definition' => [StatusPascalCase::NoResponse, 'PC No response'], |
48 | 49 | ]);
|
49 | 50 |
|
50 | 51 | it('has correct translation text passing lang', function ($enum, $lang, $result) {
|
|
54 | 55 | 'ita translation string backed enum' => [StatusString::NO_RESPONSE, 'it', 'Nessuna Risposta'],
|
55 | 56 | 'eng translation int backed enum' => [StatusInt::PENDING, 'en', 'Await decision'],
|
56 | 57 | 'ita translation int backed enum' => [StatusInt::NO_RESPONSE, 'it', 'Nessuna Risposta'],
|
57 |
| - 'ita fallback locale translation' => [StatusPascalCase::NoResponse, 'it', 'No response'], |
| 58 | + 'ita fallback locale translation' => [StatusFallbackLocale::NO_RESPONSE, 'it', 'FB No response'], |
58 | 59 | 'eng fallback translation' => [Status::PENDING, 'en', 'Await decision'],
|
59 | 60 | 'ita fallback translation' => [Status::PENDING, 'it', 'In attesa'],
|
60 |
| - 'eng method' => [StatusPascalCase::Pending, 'en', 'Await decision'], |
61 |
| - 'ita method' => [StatusPascalCase::Pending, 'it', 'Await decision'], |
| 61 | + 'eng method' => [StatusPascalCase::Pending, 'en', 'PC Await decision'], |
| 62 | + 'ita method' => [StatusPascalCase::Pending, 'it', 'PC Await decision'], |
62 | 63 | ]);
|
63 | 64 |
|
64 | 65 | it('can has correct translation with method name both singular and plural', function ($enum, $lang, $result) {
|
|
259 | 260 | it('can return an associative array of translations [value => translations] with params', function ($enumClass, $cases, $lang, $result) {
|
260 | 261 | expect($enumClass::descriptionsByValue($cases, $lang))->toBe($result);
|
261 | 262 | })->with([
|
262 |
| - 'All string backed Enum cases into it ' => [StatusString::class, null, 'it', [ |
263 |
| - 'P' => 'In attesa', |
264 |
| - 'A' => 'Accettato', |
265 |
| - 'D' => 'Rifiutato', |
266 |
| - 'N' => 'Nessuna Risposta', |
| 263 | + 'Pure Enum' => [Status::class, null, null, [ |
| 264 | + 'PENDING' => 'Await decision', |
| 265 | + 'ACCEPTED' => 'Recognized valid', |
| 266 | + 'DISCARDED' => 'No longer useful', |
| 267 | + 'NO_RESPONSE' => 'No response', |
267 | 268 | ]],
|
268 |
| - 'Some string backed Enum cases into it ' => [StatusString::class, [StatusString::NO_RESPONSE, StatusString::NO_RESPONSE], 'it', [ |
269 |
| - 'N' => 'Nessuna Risposta', |
| 269 | + 'Pure Enum subset' => [Status::class, [Status::PENDING, Status::DISCARDED], 'it', [ |
| 270 | + 'PENDING' => 'In attesa', |
| 271 | + 'DISCARDED' => 'Rifiutato', |
270 | 272 | ]],
|
| 273 | + 'Backed Enum' => [StatusString::class, null, null, [ |
| 274 | + 'P' => 'Await decision', |
| 275 | + 'A' => 'Recognized valid', |
| 276 | + 'D' => 'No longer useful', |
| 277 | + 'N' => 'No response', |
| 278 | + ]], |
| 279 | + 'Backed Enum subset' => [StatusInt::class, |
| 280 | + [StatusInt::DISCARDED, StatusInt::ACCEPTED], 'it', [ |
| 281 | + 2 => 'Rifiutato', |
| 282 | + 1 => 'Accettato', |
| 283 | + ], ], |
271 | 284 | ]);
|
272 | 285 |
|
273 | 286 | it('can return an associative array of magic translations [value => translations] with method name both singular and plural', function ($enumClass, $cases, $lang, $result) {
|
|
339 | 352 | ]],
|
340 | 353 | ]);
|
341 | 354 |
|
342 |
| -it('can return an associative array [value/name => translation]', function ($className, $cases, $lang, $values) { |
343 |
| - expect($className::descriptionsAsSelect($cases, $lang))->toBe($values); |
344 |
| -})->with([ |
345 |
| - 'Pure Enum' => [Status::class, null, null, [ |
346 |
| - 'PENDING' => 'Await decision', |
347 |
| - 'ACCEPTED' => 'Recognized valid', |
348 |
| - 'DISCARDED' => 'No longer useful', |
349 |
| - 'NO_RESPONSE' => 'No response', |
350 |
| - ]], |
351 |
| - 'Pure Enum subset' => [Status::class, [Status::PENDING, Status::DISCARDED], 'it', [ |
352 |
| - 'PENDING' => 'In attesa', |
353 |
| - 'DISCARDED' => 'Rifiutato', |
354 |
| - ]], |
355 |
| - 'Backed Enum' => [StatusString::class, null, null, [ |
356 |
| - 'P' => 'Await decision', |
357 |
| - 'A' => 'Recognized valid', |
358 |
| - 'D' => 'No longer useful', |
359 |
| - 'N' => 'No response', |
360 |
| - ]], |
361 |
| - 'Backed Enum subset' => [StatusString::class, |
362 |
| - [StatusString::DISCARDED, StatusString::ACCEPTED], 'it', [ |
363 |
| - 'D' => 'Rifiutato', |
364 |
| - 'A' => 'Accettato', |
365 |
| - ], ], |
366 |
| -]); |
367 |
| - |
368 | 355 | it('can return an associative array of magic translations [value/name => translations] with method name both singular and plural', function ($enumClass, $cases, $lang, $result) {
|
369 |
| - expect($enumClass::newsAsSelect($cases, $lang))->toBe($result); |
| 356 | + expect($enumClass::newsByValue($cases, $lang))->toBe($result); |
370 | 357 | })->with([
|
371 | 358 | 'translations' => [Status::class, null, null, [
|
372 | 359 | 'PENDING' => 'news PENDING',
|
|
0 commit comments