feat(cart): update CartItemResource to use visibleVariants method with included variant ID; enhance variant filtering logic

This commit is contained in:
2026-08-10 13:59:45 -03:00
parent 8542c03466
commit 6844ab7af9
4 changed files with 21 additions and 5 deletions

View File

@@ -260,11 +260,16 @@ class CartControllerTest extends TestCase
{
$tenant = $this->createTenant('acme');
[$item, $firstVariant] = $this->createVariantItem($tenant, 10, '15.00');
$secondInventory = Inventory::query()->create(['real_stock' => 8]);
$secondInventory = Inventory::query()->create(['real_stock' => 2]);
$secondVariant = $item->variants()->create([
'inventory_id' => $secondInventory->id,
'precio' => '20.00',
]);
$unavailableInventory = Inventory::query()->create(['real_stock' => 0]);
$unavailableVariant = $item->variants()->create([
'inventory_id' => $unavailableInventory->id,
'precio' => '25.00',
]);
$createResponse = $this->postJson('/api/tenants/acme/cart/items', [
'catalog_item_id' => $item->id,
'variant_id' => $firstVariant->id,
@@ -285,7 +290,11 @@ class CartControllerTest extends TestCase
->assertOk()
->assertJsonPath('data.items.0.variant_id', $secondVariant->id)
->assertJsonPath('data.items.0.precio_unitario', '20.00')
->assertJsonCount(2, 'data.items.0.product.variants');
->assertJsonCount(2, 'data.items.0.product.variants')
->assertJsonPath('data.items.0.product.variants.0.id', $firstVariant->id)
->assertJsonPath('data.items.0.product.variants.1.id', $secondVariant->id)
->assertJsonPath('data.items.0.product.variants.1.stock_tecnico', 0)
->assertJsonMissing(['id' => $unavailableVariant->id, 'stock_tecnico' => 0]);
$this->assertDatabaseHas('inventories', [
'id' => $firstVariant->inventory_id,