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

Crear Sistema de descuentos

未關閉
#3 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
enhancement get certificate required
主要語言
JavaScript
星號
0
分支
6
PR 合併指標
30 天內沒有已合併 PR

描述

**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

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

未指定檔案名稱。先找出 Product API、Sequelize migration 和 seed 入口,以及前端的產品顯示;接著追蹤產品回應如何到達頁面。使用所述的 POST endpoint 和 Cypress request 設定,驗證啟用促銷後每個產品都會加入折扣價格,而停用促銷後會恢復正常回應。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
cypress, javascript
領域
api, database, frontend, full-stack, testing
Issue 類型
功能
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。