diff --git a/app/Http/Controllers/Api/V1/CurrencyController.php b/app/Http/Controllers/Api/V1/CurrencyController.php index 96157c98..46f05157 100644 --- a/app/Http/Controllers/Api/V1/CurrencyController.php +++ b/app/Http/Controllers/Api/V1/CurrencyController.php @@ -6,6 +6,7 @@ namespace App\Http\Controllers\Api\V1; use App\Http\Controllers\Controller; use App\Service\CurrencyService; +use Brick\Money\Currency; use Brick\Money\ISOCurrencyProvider; use Illuminate\Http\JsonResponse; @@ -23,7 +24,7 @@ class CurrencyController extends Controller $currencyService = app(CurrencyService::class); $currencies = array_values(array_map( - fn ($currency) => [ + fn (Currency $currency): array => [ 'code' => $currency->getCurrencyCode(), 'name' => $currency->getName(), 'symbol' => $currencyService->getCurrencySymbol($currency->getCurrencyCode()), diff --git a/routes/api.php b/routes/api.php index 3f5c7d5b..23b8b033 100644 --- a/routes/api.php +++ b/routes/api.php @@ -5,6 +5,7 @@ declare(strict_types=1); use App\Http\Controllers\Api\V1\ApiTokenController; use App\Http\Controllers\Api\V1\ChartController; use App\Http\Controllers\Api\V1\ClientController; +use App\Http\Controllers\Api\V1\CurrencyController; use App\Http\Controllers\Api\V1\ExportController; use App\Http\Controllers\Api\V1\ImportController; use App\Http\Controllers\Api\V1\InvitationController; @@ -173,7 +174,7 @@ Route::prefix('v1')->name('v1.')->group(static function (): void { }); }); - Route::get('/currencies', [\App\Http\Controllers\Api\V1\CurrencyController::class, 'index'])->name('currencies.index'); + Route::get('/currencies', [CurrencyController::class, 'index'])->name('currencies.index'); // Public routes Route::name('public.')->prefix('/public')->group(static function (): void { diff --git a/tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php b/tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php new file mode 100644 index 00000000..23fa6e43 --- /dev/null +++ b/tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php @@ -0,0 +1,34 @@ +getJson(route('api.v1.currencies.index')); + + // Assert + $response->assertOk(); + $response->assertJsonCount(166); + $responseObj = collect($response->json()); + $this->assertSame([ + 'code' => 'EUR', + 'name' => 'Euro', + 'symbol' => '€', + ], $responseObj->firstWhere('code', '=', 'EUR')); + } +}