feat: add comprehensive tests for Medium, OtpCode, Shift models and various Enums

This commit is contained in:
2026-09-21 05:47:44 +03:30
parent 6e92ebaada
commit 0d16d8f512
8 changed files with 289 additions and 8 deletions
+42
View File
@@ -0,0 +1,42 @@
<?php
namespace Tests\Unit\Enums;
use App\Enums\DocumentPriorityEnum;
use App\Enums\ShiftDayEnum;
use Tests\TestCase;
class EnumHasOptionsTest extends TestCase
{
public function test_values_returns_backing_values_in_declaration_order(): void
{
$this->assertSame(['عادی', 'اورژانسی'], DocumentPriorityEnum::values());
}
public function test_keys_returns_case_names_in_declaration_order(): void
{
$this->assertSame(['Medium', 'High'], DocumentPriorityEnum::keys());
}
public function test_from_name_resolves_case_by_name(): void
{
$this->assertSame(DocumentPriorityEnum::High, DocumentPriorityEnum::fromName('High'));
$this->assertSame(ShiftDayEnum::Friday, ShiftDayEnum::fromName('Friday'));
}
public function test_from_name_returns_null_for_unknown_or_value_input(): void
{
$this->assertNull(DocumentPriorityEnum::fromName('Urgent'));
$this->assertNull(DocumentPriorityEnum::fromName(DocumentPriorityEnum::High->value));
$this->assertNull(DocumentPriorityEnum::fromName('high'));
}
public function test_options_is_keyed_by_value_with_translation_per_case(): void
{
$options = DocumentPriorityEnum::options();
$this->assertSame(['عادی', 'اورژانسی'], array_keys($options));
$this->assertSame(__('enums.DocumentPriorityEnum.Medium'), $options['عادی']);
$this->assertSame(__('enums.DocumentPriorityEnum.High'), $options['اورژانسی']);
}
}