booleancl / booleancl/G01-2021-fullstack-javascript-final

Crear Sistema de descuentos

Abierto
#3 0 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement get certificate required
Lenguaje dominante
JavaScript
Estrellas
0
Forks
6
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**Criterios de Aceptación**

```
Característica: Página principal
Mostrar precio y precio rebajado de cada producto

Escenario: precio y precio con descuento de cada producto
Dado el usuario autenticado en la página principal
Luego el usuario ve la información del precio y el precio rebajado de cada producto

```

**Requerimientos técnicos**

- [ ] Crear endpoint llamado `/api/enable_hot_sale`. este Debe ser de tipo POST y aceptar el siguiente cuerpo:

```javascript
{
"enabled": true | false,
"percentageDiscount": number
}
```
---
- [ ] Crear una migración llamada `create-hot-sale` con los campos `enabled` y `percentageDiscount`. Agrega por defecto los valores `false` y `0` respectivamente.

> Tip: No olvides correr el comando `npx sequelize-cli db:migrate` y el comando `npx sequelize-cli db:seed:all`. para este último debes haber creado algun fixture con la información por defecto de esta tabla.

---

- [ ] Modificar el endpoint que devuelve los productos para que detecte si `hot_sale` está activa. En este caso se debe agregar un nuevo campo a la respuesta llamado `priceWithDiscount` en el cuál debe estar aplicado el descuento desde la tabla. El descuento se debe aplicar a todos los productos.

> Tip: Para modificar el valor leído desde la base de datos y poder modificar el JSON de respuesta utilizar la opción `raw: true` al utilizar `findAll` de Sequelize. Más info en [este link](https://sequelize.org/master/class/lib/model.js~Model.html#static-method-findAll)

---
- [ ] Modificar el código Frontend para mostrar el precio y el precio con descuento como muestra la siguiente imagen:

![](https://res.cloudinary.com/boolean-spa/image/upload/v1630650420/boolean-fullstack-js/product-with-discount_il4tqu.png)

> Tip: Para escribir una prueba para este caso puedes utilizar `cy.request('POST'. 'http://localhost:3000/api/enable_hot_sale', body)` para activar y desactivar la funcionalidad. utiliza esto utilizando `before()` y `after()` en la prueba. No olvides el principio FIRS. Más detalle en [este link](https://docs.cypress.io/api/commands/request#Send-a-POST-request-with-a-JSON-body)

---

*Notas*
Se espera que al menos 1 de los criterios de aceptación esté automatizado

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.