mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-17 12:42:15 +01: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\Http\Controllers\Controller;
|
||||||
use App\Service\CurrencyService;
|
use App\Service\CurrencyService;
|
||||||
|
use Brick\Money\Currency;
|
||||||
use Brick\Money\ISOCurrencyProvider;
|
use Brick\Money\ISOCurrencyProvider;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
@@ -23,7 +24,7 @@ class CurrencyController extends Controller
|
|||||||
$currencyService = app(CurrencyService::class);
|
$currencyService = app(CurrencyService::class);
|
||||||
|
|
||||||
$currencies = array_values(array_map(
|
$currencies = array_values(array_map(
|
||||||
fn ($currency) => [
|
fn (Currency $currency): array => [
|
||||||
'code' => $currency->getCurrencyCode(),
|
'code' => $currency->getCurrencyCode(),
|
||||||
'name' => $currency->getName(),
|
'name' => $currency->getName(),
|
||||||
'symbol' => $currencyService->getCurrencySymbol($currency->getCurrencyCode()),
|
'symbol' => $currencyService->getCurrencySymbol($currency->getCurrencyCode()),
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
|||||||
use App\Http\Controllers\Api\V1\ApiTokenController;
|
use App\Http\Controllers\Api\V1\ApiTokenController;
|
||||||
use App\Http\Controllers\Api\V1\ChartController;
|
use App\Http\Controllers\Api\V1\ChartController;
|
||||||
use App\Http\Controllers\Api\V1\ClientController;
|
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\ExportController;
|
||||||
use App\Http\Controllers\Api\V1\ImportController;
|
use App\Http\Controllers\Api\V1\ImportController;
|
||||||
use App\Http\Controllers\Api\V1\InvitationController;
|
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
|
// Public routes
|
||||||
Route::name('public.')->prefix('/public')->group(static function (): void {
|
Route::name('public.')->prefix('/public')->group(static function (): void {
|
||||||
|
|||||||
34
tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php
Normal file
34
tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php
Normal file
@@ -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