fix(variant): simplify getName method and add test for variant without catalog attributes
This commit is contained in:
@@ -79,20 +79,7 @@ class Variant extends Model
|
|||||||
|
|
||||||
public function getName(): string
|
public function getName(): string
|
||||||
{
|
{
|
||||||
$name = $this->catalogItem->nombre;
|
return $this->catalogItem->nombre;
|
||||||
$this->loadMissing('definitions.itemAttribute.attribute');
|
|
||||||
$definitions = $this->definitions
|
|
||||||
->map(function (VariantDefinition $definition): ?string {
|
|
||||||
$attributeName = $definition->itemAttribute?->attribute?->nombre;
|
|
||||||
|
|
||||||
return $attributeName
|
|
||||||
? "{$attributeName}: {$definition->value}"
|
|
||||||
: $definition->value;
|
|
||||||
})
|
|
||||||
->filter()
|
|
||||||
->implode(', ');
|
|
||||||
|
|
||||||
return $definitions === '' ? $name : "{$name} ({$definitions})";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getMinimumUseDate(): ?CarbonInterface
|
public function getMinimumUseDate(): ?CarbonInterface
|
||||||
|
|||||||
@@ -155,6 +155,28 @@ class CatalogModelsTest extends TestCase
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_event_date_identifies_a_variant_without_catalog_attributes(): void
|
||||||
|
{
|
||||||
|
$item = new CatalogItem;
|
||||||
|
$item->nombre = 'Entrada General';
|
||||||
|
|
||||||
|
$eventDate = new EventDate;
|
||||||
|
$eventDate->date = '2026-10-09';
|
||||||
|
$eventDate->time_start = '09:00:00';
|
||||||
|
$eventDate->time_end = '18:00:00';
|
||||||
|
|
||||||
|
$variant = new Variant;
|
||||||
|
$variant->minimum_use_date = Carbon::parse('2026-10-09 08:00:00');
|
||||||
|
$variant->maximum_use_date = Carbon::parse('2026-10-09 20:00:00');
|
||||||
|
$variant->setRelation('catalogItem', $item);
|
||||||
|
$variant->setRelation('eventDate', $eventDate);
|
||||||
|
$variant->setRelation('definitions', new EloquentCollection);
|
||||||
|
|
||||||
|
$this->assertSame('Entrada General', $variant->getName());
|
||||||
|
$this->assertSame('2026-10-09 09:00:00', $variant->getMinimumUseDate()->format('Y-m-d H:i:s'));
|
||||||
|
$this->assertSame('2026-10-09 18:00:00', $variant->getMaximumUseDate()->format('Y-m-d H:i:s'));
|
||||||
|
}
|
||||||
|
|
||||||
public function test_inventory_maps_stock_without_a_polymorphic_owner(): void
|
public function test_inventory_maps_stock_without_a_polymorphic_owner(): void
|
||||||
{
|
{
|
||||||
$inventory = $this->trackedInventory(realStock: 10, reservedStock: 3);
|
$inventory = $this->trackedInventory(realStock: 10, reservedStock: 3);
|
||||||
|
|||||||
Reference in New Issue
Block a user