feat(validity-time): add ValidityTimeResource and integrate into catalog and ticket resources
This commit is contained in:
55
tests/Unit/Ticket/ValidityTimeResourceTest.php
Normal file
55
tests/Unit/Ticket/ValidityTimeResourceTest.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit\Ticket;
|
||||
|
||||
use App\Domains\Ticket\Enums\ValidityTimeType;
|
||||
use App\Domains\Ticket\Models\ValidityTime;
|
||||
use App\Domains\Ticket\Resources\ValidityTimeResource;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ValidityTimeResourceTest extends TestCase
|
||||
{
|
||||
protected function tearDown(): void
|
||||
{
|
||||
Carbon::setTestNow();
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
public function test_time_window_only_contains_non_null_time_fields(): void
|
||||
{
|
||||
Carbon::setTestNow('2026-08-20 12:00:00');
|
||||
$resource = ValidityTimeResource::make(new ValidityTime([
|
||||
'type' => ValidityTimeType::TimeWindow,
|
||||
'start_time' => '11:00:00',
|
||||
'end_time' => null,
|
||||
'fixed_starts_at' => '2026-08-20 10:00:00',
|
||||
]))->resolve();
|
||||
|
||||
$this->assertSame('time_window', $resource['type']);
|
||||
$this->assertTrue($resource['is_valid']);
|
||||
$this->assertSame('11:00:00', $resource['start_time']);
|
||||
$this->assertArrayNotHasKey('end_time', $resource);
|
||||
$this->assertArrayNotHasKey('fixed_starts_at', $resource);
|
||||
$this->assertArrayNotHasKey('fixed_expires_at', $resource);
|
||||
}
|
||||
|
||||
public function test_fixed_window_only_contains_non_null_datetime_fields(): void
|
||||
{
|
||||
Carbon::setTestNow('2026-08-20 11:00:00');
|
||||
$resource = ValidityTimeResource::make(new ValidityTime([
|
||||
'type' => ValidityTimeType::FixedWindow,
|
||||
'start_time' => '11:00:00',
|
||||
'fixed_starts_at' => '2026-08-20 10:00:00',
|
||||
'fixed_expires_at' => null,
|
||||
]))->resolve();
|
||||
|
||||
$this->assertSame('fixed_window', $resource['type']);
|
||||
$this->assertTrue($resource['is_valid']);
|
||||
$this->assertArrayHasKey('fixed_starts_at', $resource);
|
||||
$this->assertArrayNotHasKey('fixed_expires_at', $resource);
|
||||
$this->assertArrayNotHasKey('start_time', $resource);
|
||||
$this->assertArrayNotHasKey('end_time', $resource);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user