- Added `ticket_generation_policy` column to `catalog_items` table to manage ticket generation strategies. - Created `ticket_validity_times` table to allow multiple validity times per ticket. - Introduced `validity_time_id` column in `event_dates` table to associate event dates with validity times. - Established `ticket_validity_groups` and `ticket_validity_group_times` tables to group validity times for tickets. - Updated seeder to set default ticket generation policy for specific tenant. - Enhanced tests to cover new functionality, including ticket generation based on event dates and validity times. - Refactored ticket validity checks to accommodate multiple validity times in a group.
50 lines
1.9 KiB
PHP
50 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature\Ticket;
|
|
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Support\Facades\Schema;
|
|
use Tests\TestCase;
|
|
|
|
class TicketValiditySchemaTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
public function test_ticket_validity_time_schema_is_available(): void
|
|
{
|
|
$this->assertEqualsCanonicalizing([
|
|
'id',
|
|
'type',
|
|
'start_time',
|
|
'end_time',
|
|
'fixed_starts_at',
|
|
'fixed_expires_at',
|
|
'created_at',
|
|
'updated_at',
|
|
], Schema::getColumnListing('validity_times'));
|
|
|
|
$this->assertFalse(Schema::hasColumn('tickets', 'validity_time_id'));
|
|
$this->assertFalse(Schema::hasTable('ticket_validity_times'));
|
|
$this->assertEqualsCanonicalizing([
|
|
'id',
|
|
'ticket_id',
|
|
], Schema::getColumnListing('ticket_validity_groups'));
|
|
$this->assertEqualsCanonicalizing([
|
|
'ticket_validity_group_id',
|
|
'validity_time_id',
|
|
], Schema::getColumnListing('ticket_validity_group_times'));
|
|
$this->assertFalse(Schema::hasColumn('tickets', 'service_date'));
|
|
$this->assertFalse(Schema::hasColumn('tickets', 'starts_at'));
|
|
$this->assertFalse(Schema::hasColumn('tickets', 'expires_at'));
|
|
|
|
$this->assertTrue(Schema::hasColumn('catalog_items', 'validity_time_id'));
|
|
$this->assertFalse(Schema::hasColumn('catalog_items', 'minimum_use_date'));
|
|
$this->assertFalse(Schema::hasColumn('catalog_items', 'maximum_use_date'));
|
|
$this->assertTrue(Schema::hasColumn('attribute_options', 'validity_time_id'));
|
|
$this->assertTrue(Schema::hasColumn('event_dates', 'validity_time_id'));
|
|
$this->assertFalse(Schema::hasColumn('variantes', 'minimum_use_date'));
|
|
$this->assertFalse(Schema::hasColumn('variantes', 'maximum_use_date'));
|
|
|
|
}
|
|
}
|