Este projeto é uma classe simples para avaliar programadores NodeJS. A classe Troco no arquivo Troco.js, possui apenas um método, getQtdeNotas, que retorna a um array contendo a quantidade de notas necessárias de cada cédula, para completar o valor em reais passado no parâmetro.
Leia as informações à seguir com atenção, nelas serão dadas todas as instruções para seguir com o teste.
- Não faça forks ou pull requests nesse repositório, faça um clone para a sua máquina e em seguida crie um repositório no seu GitHub.
Após finalizar o teste, envie o link para o seu repositório e seus dados de contato para o e-mail [email protected]
para que ele seja avaliado, em seguida aguarde nosso contato.
Um cliente pediu uma funcionalidade para seu sistema de troco.
Essa funcionalidade permite que se entre com um valor no sistema e retorne a quantidade de notas e moedas necessária para que se chegue nesse valor.
Por exemplo:
Informei ao sistema que precisso retornar R$ 50,15 de troco, o sistema deve me retornar o mínimo de notas e moedas necessário para chegar nesse valor, ou seja uma nota de R$50,00, uma moeda de R$ 0,10 e uma moeda de R$ 0,05.
O sistema deve garantir o funcionamento dessa funcionalidade com um teste unitário para cada função adicionada.
Você precisa ter o Node JS
e o npm
(se preferir recomendamos o uso do yarn
) instalados em sua máquina.
Dentro da pasta src/
devem estar todos os arquivos necessários para o funcionamento do código.
Dentro da pasta tests/unit
devem estar todos os testes unitários que você escrever.
A funçao getQtdeNotas(reais)
que está na classe Troco
deve retornar a quantidade de notas e moedas em formato de object
;
Exemplo:
return {
"100": 2,
"50": 0,
"20": 1,
"10": 0,
"5": 1,
"2": 0,
"1": 0,
"0.5": 1,
"0.25": 0,
"0.1": 0,
"0.05": 0,
"0.01": 0
}
// 225.50
Os testes devem cobrir as funções necessárias para o funcionamento correto.
Será um diferencial a escrita de testes para cobrir as funções.
A ferramenta utilizada é o Jest
, e a documentação está disponível nesse link: https://jestjs.io/docs/en/getting-started.html
Os testes devem ser criados dentro da pasta tests/
Dentre os critérios de avaliação estão: qualidade do código escrito(clareza, manutenibilidade, organização), lógica utilizada para resolver o problema, testes.
Dentre o valor total de 10.0 da nota será distribuída da seguinte maneira:
Critério | Valor |
---|---|
Resolução do problema | 4.0 |
Lógica | 2.0 |
Testes | 2.0 |
Qualidade do código | 2.0 |
- Faça um clone do projeto para a sua máquina, e mande na sua conta do GitHub.
- Para instalar as dependências execute o comando
npm install
ouyarn
- Dentro da pasta
src/
existe uma classe chamadaTroco
, nela existe um método incompleto chamadogetQtdeNotas
e ele deve retornar a quantidade de notas. - Sinta-se a vontade para implementar a solução da maneira que quiser, mas lembre que esse método deve retornar um array de chave e valor com as quantidades de notas no modelo informado.
- Na pasta
console/
existe o arquivotroco.js
e você pode usá-lo para testar no seu console o retorno do método executandonode console/troco.js
- Os testes devem ser criados utilizando a ferramenta
Jest
e colocados na pastatests/unit
como o arquivoTroco.spec.js
, você pode utilizar esse mesmo arquivo para testar. - O arquivo
Troco.spec.js
possui um teste de exemplo, que deverá ser atualizado ao final da prova.
- Para instalar as dependências navegue até a pasta do projeto e execute
yarn
ounpm install
- Para executar o arquivo pelo console navegue até a pasta do projto e execute
node console/troco.js
- Para executar os testes unitários navegue até a pasta do projeto e execute
yarn test
ounpm run test
Os candidatos com melhores avaliações receberão nosso contato marcando uma entrevista onde conheceremos melhor seu perfil.
Então vamos la: Let's Coding