mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-05-07 20:32:26 +00:00
Add unit test for currency endpoint
This commit is contained in:
committed by
Gregor Vostrak
parent
411fc6ea5e
commit
284d8cd786
@@ -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()),
|
||||
|
||||
+2
-1
@@ -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 {
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests\Unit\Endpoint\Api\V1;
|
||||
|
||||
use App\Http\Controllers\Api\V1\CurrencyController;
|
||||
use App\Service\CurrencyService;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\UsesClass;
|
||||
|
||||
#[CoversClass(CurrencyController::class)]
|
||||
#[CoversClass(CurrencyService::class)]
|
||||
#[UsesClass(CurrencyController::class)]
|
||||
class CurrencyEndpointTest extends ApiEndpointTestAbstract
|
||||
{
|
||||
public function test_index_return_list_of_available_currencies_incl_symbol(): void
|
||||
{
|
||||
// Arrange
|
||||
|
||||
// Act
|
||||
$response = $this->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'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user