feat(catalog): omit hidden products before pagination
This commit is contained in:
@@ -48,7 +48,18 @@ class CatalogItemDetailControllerTest extends TestCase
|
||||
$this->assertStringContainsString($itemImage->path, $response->json('data.images.0'));
|
||||
}
|
||||
|
||||
public function test_it_lists_unavailable_variants_and_selects_the_first_available_one(): void
|
||||
public function test_it_does_not_return_an_out_of_stock_product_detail(): void
|
||||
{
|
||||
$tenant = $this->createTenant('detail-hidden');
|
||||
$inventory = Inventory::query()->create(['real_stock' => 0]);
|
||||
$item = $this->createItem($tenant, 'Hidden item', $inventory);
|
||||
|
||||
$this->getJson(
|
||||
"/api/tenants/{$tenant->codigo}/catalog-items/{$item->id}",
|
||||
)->assertNotFound();
|
||||
}
|
||||
|
||||
public function test_it_hides_unavailable_variants_and_selects_the_first_available_one(): void
|
||||
{
|
||||
Storage::fake('s3');
|
||||
$tenant = $this->createTenant('detail-default');
|
||||
@@ -69,14 +80,9 @@ class CatalogItemDetailControllerTest extends TestCase
|
||||
|
||||
$response
|
||||
->assertOk()
|
||||
->assertJsonCount(2, 'data.variants')
|
||||
->assertJsonPath('data.variants.0.id', $firstVariant->id)
|
||||
->assertJsonPath('data.variants.0.availability.maximum_quantity', 0)
|
||||
->assertJsonPath(
|
||||
'data.variants.0.availability.restrictions.0.message',
|
||||
'Este producto no tiene stock disponible.',
|
||||
)
|
||||
->assertJsonPath('data.variants.1.id', $secondVariant->id)
|
||||
->assertJsonCount(1, 'data.variants')
|
||||
->assertJsonPath('data.variants.0.id', $secondVariant->id)
|
||||
->assertJsonPath('data.variants.0.availability.subject', 'variant')
|
||||
->assertJsonPath('data.selected_variant.id', $secondVariant->id)
|
||||
->assertJsonPath('data.selected_variant.availability.maximum_quantity', 6)
|
||||
->assertJsonMissingPath('data.selected_variant.stock_tecnico')
|
||||
|
||||
Reference in New Issue
Block a user