Fixed failing tests because of legacy currency codes

This commit is contained in:
Constantin Graf
2025-07-17 17:47:51 +02:00
parent 9158b445f1
commit f2cdbe1e7e
3 changed files with 22 additions and 1 deletions
+9
View File
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Service;
use Brick\Money\ISOCurrencyProvider;
use Brick\Money\Money;
class CurrencyService
@@ -374,4 +375,12 @@ class CurrencyService
return $currencyCode;
}
public function getRandomCurrencyCode(): string
{
$currencies = ISOCurrencyProvider::getInstance()->getAvailableCurrencies();
$currencyCodes = array_keys($currencies);
return $currencyCodes[array_rand($currencyCodes)];
}
}
+2 -1
View File
@@ -11,6 +11,7 @@ use App\Enums\NumberFormat;
use App\Enums\TimeFormat;
use App\Models\Organization;
use App\Models\User;
use App\Service\CurrencyService;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
@@ -27,7 +28,7 @@ class OrganizationFactory extends Factory
{
return [
'name' => $this->faker->unique()->company(),
'currency' => $this->faker->currencyCode(),
'currency' => app(CurrencyService::class)->getRandomCurrencyCode(),
'billable_rate' => null,
'user_id' => User::factory(),
'personal_team' => true,
@@ -92,4 +92,15 @@ class CurrencyServiceTest extends TestCaseWithDatabase
// Assert
$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));
}
}