Fixed failing tests because of legacy currency codes

This commit is contained in:
Constantin Graf
2025-07-17 17:47:51 +02:00
committed by Constantin Graf
parent f9c0d64f82
commit e1185af281
3 changed files with 22 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Service; namespace App\Service;
use Brick\Money\ISOCurrencyProvider;
use Brick\Money\Money; use Brick\Money\Money;
class CurrencyService class CurrencyService
@@ -374,4 +375,12 @@ class CurrencyService
return $currencyCode; return $currencyCode;
} }
public function getRandomCurrencyCode(): string
{
$currencies = ISOCurrencyProvider::getInstance()->getAvailableCurrencies();
$currencyCodes = array_keys($currencies);
return $currencyCodes[array_rand($currencyCodes)];
}
} }

View File

@@ -11,6 +11,7 @@ use App\Enums\NumberFormat;
use App\Enums\TimeFormat; use App\Enums\TimeFormat;
use App\Models\Organization; use App\Models\Organization;
use App\Models\User; use App\Models\User;
use App\Service\CurrencyService;
use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Database\Eloquent\Factories\Factory;
/** /**
@@ -27,7 +28,7 @@ class OrganizationFactory extends Factory
{ {
return [ return [
'name' => $this->faker->unique()->company(), 'name' => $this->faker->unique()->company(),
'currency' => $this->faker->currencyCode(), 'currency' => app(CurrencyService::class)->getRandomCurrencyCode(),
'billable_rate' => null, 'billable_rate' => null,
'user_id' => User::factory(), 'user_id' => User::factory(),
'personal_team' => true, 'personal_team' => true,

View File

@@ -92,4 +92,15 @@ class CurrencyServiceTest extends TestCaseWithDatabase
// Assert // Assert
$this->assertSame('XXX', $symbol); $this->assertSame('XXX', $symbol);
} }
public function test_get_random_currency_code(): void
{
// Act
$currencyCode = $this->currencyService->getRandomCurrencyCode();
// Assert
$this->assertNotEmpty($currencyCode);
$this->assertIsString($currencyCode);
$this->assertNotNull(Currency::of($currencyCode));
}
} }