Instruções

Crie um programa de gestão de inventário

Neste laboratório, você deve desenvolver um programa de gestão de inventário que permitirá adicionar, atualizar, encontrar e remover produtos do inventário. Você usará um array de objetos para representar o inventário, onde cada objeto terá 'name' e 'quantity' como chaves. Objetivo: Cumprir as user stories abaixo e fazer todos os testes passarem para completar o laboratório. Histórias de Usuário: 1. Você deve declarar um array vazio chamada inventory, que armazenará objetos de produtos tendo uma chave name com o valor de uma string em minúsculas, e uma chave quantity, com o valor de um inteiro. 1. Você deve criar uma função chamada findProductIndex que recebe o nome do produto como argumento e retorna o índice do objeto do produto correspondente dentro do array inventory. A função deve sempre usar a forma em letras minúsculas do nome do produto para realizar a busca. Se o produto não for encontrado, a função deve retornar -1. 1. Você deve criar uma função chamada addProduct, que recebe um objeto de produto como argumento. 1. Se o produto já estiver presente no inventário, a função addProduct deve atualizar o valor de quantity adicionando a quantidade passada para a função à quantity atual e registrar no console o nome do produto seguido de um espaço e quantity updated. 1. Se o produto não estiver presente no inventário, a função addProduct deve enviar o produto para o array inventory e registrar o nome do produto no console, seguido por um espaço e added to inventory. 1. Você deve criar uma função chamada removeProduct, que recebe o nome do produto e a quantidade como argumentos. 1. A função removeProduct deve subtrair a quantidade passada do objeto do produto correspondente dentro do inventário e registrar a string Remaining <product-name> pieces: <product-quantity> no console, onde <product-name> deve ser substituído pelo nome do produto, e <product-quantity> deve ser substituído pela quantidade do produto. 1. Se a quantidade após a subtração for zero, a função removeProduct deve remover o objeto do produto do inventário. Se a quantidade no inventário não for suficiente para realizar a subtração, a função removeProduct deve registrar a string Não há <product-name> suficiente disponível, peças restantes: <product-quantity> no console. 1. Se o produto a ser removido não estiver presente no inventário, a função removeProduct deve registrar <product-name> não encontrado no console. Nota: Para evitar conflitos, mantenha apenas o registro mencionado nas histórias de usuário ao executar os testes.

O que fazer:

Testes:

  • Você deve declarar um array vazio chamado `inventory`.
  • Você deve ter uma função chamada `findProductIndex`.
  • `findProductIndex("flour")` deve retornar o índice do objeto que tem `name` igual a `"flour"` dentro do array `inventory`.
  • `findProductIndex("FloUr")` deve retornar o índice do objeto que possui `name` igual a `"flour"` dentro do array `inventory`.
  • `findProductIndex("Flour")` deve retornar `-1` quando nenhum objeto com `name` igual a `"flour"` for encontrado dentro do array `inventory`.
  • Você deve ter uma função chamada `addProduct`.
  • `addProduct({name: "FLOUR", quantity: 5})` deve adicionar `5` ao valor do `quantity` do objeto que tem `name` igual a `"flour"` no array `inventory`.
  • `addProduct({name: "FLOUR", quantity: 5})` deve registrar `flour quantity updated` quando um objeto com `name` igual a `"flour"` for encontrado no array `inventory`.
  • `addProduct({name: "FLOUR", quantity: 5})` deve enviar `{name: "flour", quantity: 5}` para o array `inventory` quando nenhum objeto com `name` igual a `"flour"` for encontrado no inventário.
  • `addProduct({name: "FLOUR", quantity: 5})` deve registrar `flour added to inventory` quando nenhum objeto com `name` igual a `"flour"` for encontrado no inventário.
  • Você deve criar uma função chamada `removeProduct`.
  • `removeProduct("FLOUR", 5)` deve registrar `flour not found` quando nenhum objeto com `name` igual a `"flour"` for encontrado no array `inventory`.
  • `removeProduct("FLOUR", 5)` deve subtrair `5` do valor de `quantity` do objeto que tem o `name` igual a `"flour"` dentro do array `inventory`.
  • `removeProduct("FLOUR", 5)` deve registrar `Remaining flour pieces: 15` no console, quando `inventory` for igual a `[{name: "flour", quantity: 20}, {name: "rice", quantity: 5}]`.
  • Se `quantity` após a subtração for zero, `removeProduct` deve remover o objeto de produto do inventário.
  • `removeProduct("FLOUR", 10)` deve registrar `Not enough flour available, remaining pieces: 5` quando `inventory` for igual a `[{name: "flour", quantity: 5}, {name: "rice", quantity: 5}]`.

Preview