Se muestran cuando ejecutas los tests. Hasta entonces aparecen como un requisito oculto.
Crea un carrito de compra en el que se puedan añadir productos, cambiar sus cantidades y aplicar un cupón, con un subtotal, un descuento y un total. Practicas las actualizaciones inmutables de una lista de objetos y los valores derivados del estado.
Add, las líneas del carrito con − y +, el formulario del cupón y los totales.aria-label (Add T-shirt, Increase T-shirt, Decrease T-shirt, Quantity of T-shirt, Coupon code), los textos (Your cart is empty, Subtotal: $…, Discount: −$…, Total: $…, Invalid coupon) y los role: los usan los tests.Your cart is empty y Total: $0.00.Add pone el producto en el carrito con cantidad 1; añadir un producto que ya está en él aumenta su cantidad en lugar de añadir otra línea.+ y − cambian la cantidad de una línea; cuando baja de 1, la línea se borra.$12.99).Apply con el código SAVE10 descuenta un 10 % del subtotal: ves Discount: −$… y el total es el subtotal menos el descuento. El descuento se redondea al centavo.Invalid coupon en un elemento con role="alert", y no hay descuento.$12.99, y Total: $12.99.SAVE10 → Discount: −$1.30 y Total: $11.69.+ en Coffee mug → $25.98 en su línea.El carrito es una lista de { id, name, price, quantity }: añade, cambia y borra líneas con map, filter y spread, nunca cambiando los objetos.
Guarda qué cupón está aplicado, no cuánto descuenta: el descuento sale del subtotal actual.
toFixed(2) convierte un número en un texto con dos decimales.
La consola está vacía
Ejecuta tu código con Ctrl+S
Esta consola empieza de cero cada vez que se carga la vista previa. La consola de DevTools del navegador conserva los mensajes con Preserve log.