forceFill([ 'id' => 15, 'total' => '30000.00', ]); $item = (new PurchaseItem)->forceFill([ 'id' => 8, 'item_nombre' => 'Comida', 'variant_attributes' => [ ['name' => 'Fecha', 'value' => ['2026-10-12']], ], 'cantidad' => 3, 'precio_unitario' => '10000.00', 'total' => '30000.00', ]); $purchase->setRelation('items', collect([$item])); $data = (new SaleDetailResource($purchase))->resolve(Request::create('/')); $this->assertSame(15, $data['id']); $this->assertSame('Comida', $data['items'][0]['product']); $this->assertSame(['2026-10-12'], $data['items'][0]['event_dates']); $this->assertSame(3, $data['items'][0]['quantity']); $this->assertSame('10000.00', $data['items'][0]['unit_price']); $this->assertSame('30000.00', $data['items'][0]['total']); $this->assertSame('30000.00', $data['total']); } public function test_it_uses_the_associated_cart_items_when_the_purchase_has_no_items(): void { $catalogItem = (new CatalogItem)->forceFill([ 'id' => 21, 'nombre' => 'Entrada general', 'precio' => '12500.00', ]); $cartItem = (new CartItem)->forceFill([ 'id' => 34, 'catalog_item_id' => $catalogItem->id, 'cantidad' => 2, ]); $cartItem->setRelation('catalogItem', $catalogItem); $cartItem->setRelation('variant', null); $cart = new Cart; $cart->setRelation('items', collect([$cartItem])); $purchase = (new Purchase)->forceFill([ 'id' => 16, 'total' => '25000.00', ]); $purchase->setRelation('items', collect()); $purchase->setRelation('cart', $cart); $data = (new SaleDetailResource($purchase))->resolve(Request::create('/')); $this->assertSame(34, $data['items'][0]['id']); $this->assertSame('Entrada general', $data['items'][0]['product']); $this->assertSame([], $data['items'][0]['event_dates']); $this->assertSame(2, $data['items'][0]['quantity']); $this->assertSame('12500.00', $data['items'][0]['unit_price']); $this->assertSame('25000.00', $data['items'][0]['total']); } }