feat(catalog): exclude out-of-stock items and update variant visibility logic
This commit is contained in:
@@ -73,19 +73,18 @@ class CatalogControllerTest extends TestCase
|
||||
->assertJsonPath('0.items.0.descripcion', 'Variants description')
|
||||
->assertJsonPath('0.items.0.precio', '100.00')
|
||||
->assertJsonPath('0.items.0.maximum_addable_quantity', 7)
|
||||
->assertJsonCount(3, '0.items.0.variants')
|
||||
->assertJsonCount(2, '0.items.0.variants')
|
||||
->assertJsonPath('0.items.0.variants.0.maximum_addable_quantity', 4)
|
||||
->assertJsonPath('0.items.0.variants.1.maximum_addable_quantity', 3)
|
||||
->assertJsonPath('0.items.0.variants.2.id', $unavailableVariant->id)
|
||||
->assertJsonPath('0.items.0.variants.2.maximum_addable_quantity', 0)
|
||||
->assertJsonPath(
|
||||
'0.items.0.variants.2.unavailable_message',
|
||||
'Este producto no tiene stock disponible.',
|
||||
)
|
||||
->assertJsonPath('1.title', 'Row')
|
||||
->assertJsonPath('1.items.data.0.maximum_addable_quantity', 8)
|
||||
->assertJsonMissingPath('1.items.data.0.stock_tecnico')
|
||||
->assertJsonCount(0, '1.items.data.0.variants');
|
||||
|
||||
$this->assertNotContains(
|
||||
$unavailableVariant->id,
|
||||
collect($response->json('0.items.0.variants'))->pluck('id')->all(),
|
||||
);
|
||||
}
|
||||
|
||||
public function test_maximum_addable_quantity_shares_the_authenticated_user_quota_between_variants(): void
|
||||
@@ -133,7 +132,7 @@ class CatalogControllerTest extends TestCase
|
||||
->assertJsonMissingPath('0.items.0.variants.1.stock_tecnico');
|
||||
}
|
||||
|
||||
public function test_it_includes_out_of_stock_items_with_an_unavailable_message(): void
|
||||
public function test_it_excludes_out_of_stock_items(): void
|
||||
{
|
||||
$tenant = $this->createTenant('catalog-available-variants');
|
||||
$group = $this->createGroup(
|
||||
@@ -161,15 +160,10 @@ class CatalogControllerTest extends TestCase
|
||||
|
||||
$this->getJson("/api/tenants/{$tenant->codigo}/catalog")
|
||||
->assertOk()
|
||||
->assertJsonCount(2, '0.items')
|
||||
->assertJsonPath('0.items.0.nombre', 'Unavailable')
|
||||
->assertJsonPath('0.items.0.maximum_addable_quantity', 0)
|
||||
->assertJsonPath(
|
||||
'0.items.0.unavailable_message',
|
||||
'Este producto no tiene stock disponible.',
|
||||
)
|
||||
->assertJsonPath('0.items.1.nombre', 'Available')
|
||||
->assertJsonPath('0.items.1.unavailable_message', null);
|
||||
->assertJsonCount(1, '0.items')
|
||||
->assertJsonPath('0.items.0.nombre', 'Available')
|
||||
->assertJsonPath('0.items.0.unavailable_message', null)
|
||||
->assertJsonMissing(['nombre' => 'Unavailable']);
|
||||
}
|
||||
|
||||
public function test_column_with_image_uses_item_image_then_variant_image_then_null(): void
|
||||
|
||||
Reference in New Issue
Block a user