/gostack13-lv03-d02

GoStack #13 - Level 03 - Desafio: Fundamentos React Native

Primary LanguageTypeScript

GoStack Bootcamp

Level 03 - Desafio: Fundamentos React Native

📑 InstruçÔes do desafio   |   đŸ‘šđŸ»â€đŸŽš Layout do Figma


đŸ“· Screen captures

GoMarketplace - Listagem GoMarketplace - Carrinho

⚙ Testes

  • - should be able to list the products: Para que esse teste passe, sua aplicação deve permitir que sejam listados na sua tela Dashboard, todos os produtos que sĂŁo retornadas do Fake API. Essa listagem deve exibir o title e o price que deve ser formatado utilizando a função Intl.

  • - should be able to add a product to the cart: Para que esse teste passe, vocĂȘ deve permitir que seja possĂ­vel adicionar produtos da sua Dashboard ao carrinho, utilizando o contexto de cart disponibilizado.

  • - should be able to list the products on the cart: Para que esse teste passe, vocĂȘ deve permitir que seja possĂ­vel listar os produtos que estĂŁo salvos no contexto do seu carrinho na pĂĄgina Cart, nessa pĂĄgina exiba o nome do produto e o subtotal total de cada produto (price * quantity).

  • - should be able to calculate the cart total: Para que esse teste passe, tanto na pĂĄgina Dashboard, tanto na pĂĄgina Cart vocĂȘ deve exibir o valor total de todos os itens que estĂŁo no seu carrinho. Dica: Para calcular o total de todos os itens, vocĂȘ pode utilizar o reduce para somar todos os valores e retornar o valor total.

  • - should be able to show the total quantity of itens in the cart: Para que esse teste passe, tanto na pĂĄgina Dashboard, tanto na pĂĄgina Cart vocĂȘ deve exibir o nĂșmero total de itens que estĂŁo no seu carrinho. Dica: Para calcular o total de todos os itens, vocĂȘ pode utilizar o reduce para somar todos os valores e retornar o valor total. Dica 2: Utilize o useMemo para armazenar o valor total do carrinho que vocĂȘ calculou.

  • - should be able to increment product quantity on the cart: Para que esse teste passe, vocĂȘ deve permitir que seja possĂ­vel incrementar a quantidade de um produto do seu carrinho, utilizando o contexto de cart disponibilizado.

  • - should be able to decrement product quantity on the cart: Para que esse teste passe, vocĂȘ deve permitir que seja possĂ­vel decrementar a quantidade de um produto do seu carrinho, utilizando o contexto de cart disponibilizado.

Dica: Ao decrementar a quantidade de um produto, nĂŁo permita que ele seja decrementado para um valor negativo, sendo a quantidade mĂ­nima 1 para estar no carrinho.

  • - should be able to navigate to the cart: Para que esse teste passe, no seu componente FloatingCart na Dashboard, vocĂȘ deve permitir que ao clicar no botĂŁo de carrinho com o testID de navigate-to-cart-button, o usuĂĄrio seja redirecionado para a pĂĄgina Cart.

  • - should be able to add products to the cart: Para que esse teste passe, no seu arquivo onde contĂ©m o contexto do carrinho, vocĂȘ deve permitir que a função addToCart adicione um novo item ao carrinho.

  • - should be able to increment quantity: Para que esse teste passe, no seu arquivo onde contĂ©m o contexto do carrinho, vocĂȘ deve permitir que a função increment incremente em 1 unidade a quantidade de um item que estĂĄ armazenado no contexto.

  • - should be able to decrement quantity: Para que esse teste passe, no seu arquivo onde contĂ©m o contexto do carrinho, vocĂȘ deve permitir que a função decrement decremente em 1 unidade a quantidade de um item que estĂĄ armazenado no contexto.

  • - should store products in AsyncStorage while adding, incrementing and decrementing: Para que esse teste passe, no seu arquivo onde contĂ©m o contexto do carrinho vocĂȘ deve permitir que todas as atualizaçÔes que vocĂȘ fizer no carrinho, sejam salvas no AsyncStorage. Por exemplo, ao adicionar um item ao carrinho, adicione-o tambĂ©m no AsyncStorage. Lembre de tambĂ©m atualizar o valor do AsyncStorage quando vocĂȘ incrementar ou decrementar a quantidade de um item.

  • - should load products from AsyncStorage: Para que esse teste passe, no seu arquivo onde contĂ©m o contexto do carrinho, vocĂȘ deve permitir que todos os produtos que foram adicionados sejam buscados do AsyncStorage.