/desafio-fundamentos-react-native

Desafio 08: Fundamentos do React Native

Primary LanguageTypeScript

Desafio 08: Fundamentos do React Native - GoStack Turma 11

Sobre o desafio

  • Desafio 08 onde foi desenvolvido uma nova aplicação, a GoMarketplace. Colocando em pratica o que foi aprendido até agora no React Native, junto com TypeScript, utilizando rotas, Async Storage e a Context API.

Testes

  • Após a implementação os testes devem ser executados para que possa ser avaliado todos os pontos do desafio proposto. Para esse desafio, temos os seguintes 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, toda 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, 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.

  • 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.

  • 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.

  • 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 altere 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 altere 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 salvar 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.

Resultado dos testes:

Rocketseat!! GoStack11!! Desafio08 ReactNative!!