Add tests for ticket validity and event date formatting
- Create TicketValiditySchemaTest to verify database schema for ticket validity. - Update CatalogModelsTest to include tests for event date attributes and selection options. - Introduce EventDateTextFormatterTest for formatting event dates in Spanish. - Refactor EventModelsTest to include validity time relationships. - Add SaleDetailResourceTest to ensure correct serialization of purchase items. - Enhance TicketTest with validity time checks and status management. - Implement ValidityTimeResourceTest to validate resource output for different validity types. - Add ValidityTimeTest to verify casting and validity checks for validity time types.
This commit is contained in:
@@ -48,8 +48,15 @@ class CatalogControllerTest extends TestCase
|
||||
'real_stock' => 4,
|
||||
'reserved_stock' => 1,
|
||||
]);
|
||||
$unavailableInventory = Inventory::query()->create([
|
||||
'real_stock' => 2,
|
||||
'reserved_stock' => 2,
|
||||
]);
|
||||
$variantItem->variants()->create(['inventory_id' => $firstInventory->id]);
|
||||
$variantItem->variants()->create(['inventory_id' => $secondInventory->id]);
|
||||
$unavailableVariant = $variantItem->variants()->create([
|
||||
'inventory_id' => $unavailableInventory->id,
|
||||
]);
|
||||
$cart->featuredItems()->create(['catalog_item_id' => $variantItem->id]);
|
||||
|
||||
$response = $this->getJson("/api/tenants/{$tenant->codigo}/catalog");
|
||||
@@ -67,11 +74,45 @@ class CatalogControllerTest extends TestCase
|
||||
->assertJsonCount(2, '0.items.0.variants')
|
||||
->assertJsonPath('0.items.0.variants.0.stock_tecnico', 4)
|
||||
->assertJsonPath('0.items.0.variants.1.stock_tecnico', 3)
|
||||
->assertJsonMissing(['id' => $unavailableVariant->id, 'stock_tecnico' => 0])
|
||||
->assertJsonPath('1.title', 'Row')
|
||||
->assertJsonPath('1.items.data.0.stock_tecnico', 8)
|
||||
->assertJsonCount(0, '1.items.data.0.variants');
|
||||
}
|
||||
|
||||
public function test_it_excludes_items_when_all_of_their_variants_are_out_of_stock(): void
|
||||
{
|
||||
$tenant = $this->createTenant('catalog-available-variants');
|
||||
$group = $this->createGroup(
|
||||
$tenant,
|
||||
ProductLayout::ColumnWithCart,
|
||||
'Available variants',
|
||||
groupLayout: GroupLayout::SimpleVertical,
|
||||
);
|
||||
|
||||
$unavailableItem = $this->createItem($tenant, 'Unavailable');
|
||||
$unavailableInventory = Inventory::query()->create([
|
||||
'real_stock' => 4,
|
||||
'reserved_stock' => 4,
|
||||
]);
|
||||
$unavailableItem->variants()->create(['inventory_id' => $unavailableInventory->id]);
|
||||
$group->featuredItems()->create(['catalog_item_id' => $unavailableItem->id]);
|
||||
|
||||
$availableItem = $this->createItem($tenant, 'Available');
|
||||
$availableInventory = Inventory::query()->create([
|
||||
'real_stock' => 4,
|
||||
'reserved_stock' => 3,
|
||||
]);
|
||||
$availableItem->variants()->create(['inventory_id' => $availableInventory->id]);
|
||||
$group->featuredItems()->create(['catalog_item_id' => $availableItem->id]);
|
||||
|
||||
$this->getJson("/api/tenants/{$tenant->codigo}/catalog")
|
||||
->assertOk()
|
||||
->assertJsonCount(1, '0.items')
|
||||
->assertJsonPath('0.items.0.nombre', 'Available')
|
||||
->assertJsonMissing(['nombre' => 'Unavailable']);
|
||||
}
|
||||
|
||||
public function test_column_with_image_uses_item_image_then_variant_image_then_null(): void
|
||||
{
|
||||
Storage::fake('s3');
|
||||
|
||||
Reference in New Issue
Block a user