Crear Sistema de descuentos
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 35/100
- Issue 類型
- 功能
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- cypress, javascript
- 領域
- api, database, frontend, full-stack, testing
研究方向
未指定檔案名稱。先找出 Product API、Sequelize migration 和 seed 入口,以及前端的產品顯示;接著追蹤產品回應如何到達頁面。使用所述的 POST endpoint 和 Cypress request 設定,驗證啟用促銷後每個產品都會加入折扣價格,而停用促銷後會恢復正常回應。
由索引模型根據 Issue 內容生成。
描述
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:
{
"enabled": true | false,
"percentageDiscount": number
}
- Crear una migración llamada
create-hot-salecon los camposenabledypercentageDiscount. Agrega por defecto los valoresfalsey0respectivamente.
Tip: No olvides correr el comando
npx sequelize-cli db:migratey el comandonpx 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_saleestá activa. En este caso se debe agregar un nuevo campo a la respuesta llamadopriceWithDiscounten 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: trueal utilizarfindAllde Sequelize. Más info en este link
-
Modificar el código Frontend para mostrar el precio y el precio con descuento como muestra la siguiente imagen:

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 utilizandobefore()yafter()en la prueba. No olvides el principio FIRS. Más detalle en este link
Notas
Se espera que al menos 1 de los criterios de aceptación esté automatizado
- 主要語言
- JavaScript
- 星號
- 0
- 分支
- 6
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
我們還沒有檢查這個專案的環境設定檔。先看它的 README,通用步驟見我們的新手貢獻指南。
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
booleancl/G01-2021-fullstack-javascript-final 的其他 Issue
-
enhancement get certificate required
難度 4/5 3-5 天 新手友好度 45/100
-
enhancement get certificate required
難度 4/5 3-5 天 新手友好度 38/100
-
enhancement get certificate required
難度 4/5 3-5 天 新手友好度 38/100
-
Crear producto未關閉enhancement get certificate required
難度 5/5 一週以上 新手友好度 25/100
-
enhancement get certificate required
難度 4/5 3-5 天 新手友好度 45/100
查看 booleancl/G01-2021-fullstack-javascript-final 的全部 Issue
相似的 Issue
-
check:passed logos:add
難度 1/5 1 小時以內 新手友好度 82/100
維護者通常 1 天內回覆
-
component/administration domain/framework needs-triage Platform(Default) priority/low
難度 2/5 1-3 小時 新手友好度 88/100
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 90/100
semantic-release/gitlab#1032 ·
-
agent/guide documentation hive/hosted-available-lke648397-260827-5n31
難度 1/5 1 小時以內 新手友好度 92/100
維護者通常 1 天內回覆
-
agentic-workflows
難度 1/5 1 小時以內 新手友好度 85/100
githubnext/gh-aw-workshop#3933 ·
維護者通常 2 天內回覆