refactor(variant-selection): update variant options retrieval to use catalog item's variants and enhance response structure
This commit is contained in:
parent
9e74e21fb5
commit
1c2f6c4127
|
|
@ -38,7 +38,7 @@ class VariantSelectionService
|
|||
$matchingVariants = $variants
|
||||
->filter(fn (Variant $variant): bool => $this->matches($variant, $normalizedSelections))
|
||||
->values();
|
||||
$attributeKeys = $this->attributeKeys($catalogItem, $variants);
|
||||
$attributeKeys = $this->attributeKeys($catalogItem, $catalogItem->variants->values());
|
||||
$isComplete = $attributeKeys->isNotEmpty()
|
||||
&& $attributeKeys->every(fn (string $key): bool => array_key_exists($key, $normalizedSelections));
|
||||
$resolvedVariant = $isComplete && $matchingVariants->count() === 1
|
||||
|
|
@ -46,6 +46,10 @@ class VariantSelectionService
|
|||
: null;
|
||||
|
||||
return [
|
||||
'variants' => $variants
|
||||
->map(fn (Variant $variant): array => $this->variantData($catalogItem, $variant))
|
||||
->values()
|
||||
->all(),
|
||||
'selectors' => $this->selectors(
|
||||
$catalogItem,
|
||||
$variants,
|
||||
|
|
|
|||
|
|
@ -342,7 +342,10 @@ class CatalogItemDetailControllerTest extends TestCase
|
|||
->assertOk()
|
||||
->assertJsonPath('data.valid', true)
|
||||
->assertJsonPath('data.resolved_variant', null)
|
||||
->assertJsonMissingPath('data.variants')
|
||||
->assertJsonCount(3, 'data.variants')
|
||||
->assertJsonPath('data.variants.0.id', $first->id)
|
||||
->assertJsonPath('data.variants.0.values.sector.value', 'A')
|
||||
->assertJsonPath('data.variants.0.values.seat.value', '1')
|
||||
->assertJsonCount(2, 'data.selectors')
|
||||
->assertJsonPath('data.selectors.0.key', 'sector')
|
||||
->assertJsonCount(2, 'data.selectors.0.options')
|
||||
|
|
|
|||
Loading…
Reference in New Issue