diff --git a/src/dominio/calculadora/Projeto/pacote.js b/src/dominio/calculadora/Projeto/pacote.js index 615b3c4..87bff15 100644 --- a/src/dominio/calculadora/Projeto/pacote.js +++ b/src/dominio/calculadora/Projeto/pacote.js @@ -1,7 +1,7 @@ const { MAX_HORAS_POR_PACOTE } = require('../constantes/constantes'); const calcularPacote = (totalDeHorasPorProjeto) => Object.entries(MAX_HORAS_POR_PACOTE) - .find(([key, value]) => value > totalDeHorasPorProjeto + .find(([key, value]) => value >= totalDeHorasPorProjeto )[0]; exports.calcularPacote = calcularPacote; \ No newline at end of file diff --git a/src/entregasDesafio/ana-luiza-sampaio/valorHora.test.js b/src/entregasDesafio/ana-luiza-sampaio/valorHora.test.js deleted file mode 100644 index e69de29..0000000 diff --git a/src/entregasDesafio/ava-pimmel-correa/horasPorProjeto.test.js b/src/entregasDesafio/ava-pimmel-correa/horasPorProjeto.test.js new file mode 100644 index 0000000..9333b04 --- /dev/null +++ b/src/entregasDesafio/ava-pimmel-correa/horasPorProjeto.test.js @@ -0,0 +1,26 @@ +const horasPorProjeto = require('../../dominio/calculadora/Projeto/horasPorProjeto'); + +var testeGenerico = (arrayFuncionalidades, valorTotalEsperado, stringTeste) => { + test(stringTeste, () => { + const calculo = horasPorProjeto.calcularHorasDeProjeto(arrayFuncionalidades); + expect(calculo).toBe(valorTotalEsperado); + }); +}; + +describe( 'Teste do calculo de horas em um projeto com X funcionalidades', () => { + testeGenerico( + arrayFuncionalidades = ['construcao_1_pagina'], + valorTotalEsperado = 8, + 'Projeto com 1 pagina' + ); + testeGenerico( + arrayFuncionalidades = ['construcao_1_pagina', 'construcao_1_pagina'], + valorTotalEsperado = 16, + 'Projeto com 2 paginas' + ); + testeGenerico( + arrayFuncionalidades = ['construcao_1_pagina', 'formulario', 'ssr'], + valorTotalEsperado = 32, + 'Projeto com 1 pagina, formulario e ssr' + ); +}); diff --git a/src/entregasDesafio/ava-pimmel-correa/pacote.test.js b/src/entregasDesafio/ava-pimmel-correa/pacote.test.js new file mode 100644 index 0000000..3d291f0 --- /dev/null +++ b/src/entregasDesafio/ava-pimmel-correa/pacote.test.js @@ -0,0 +1,36 @@ +const pacote = require('../../dominio/calculadora/Projeto/pacote'); + +var testeGenerico = (quantidadeHoras, tipoPacoteEsperado, stringTeste) => { + test(stringTeste, () => { + const calculo = pacote.calcularPacote(quantidadeHoras); + expect(calculo).toBe(tipoPacoteEsperado); + }); +}; + +describe("Calcula pacote", () => { + testeGenerico( + 23, + 'pacote_basico', + 'Calcular pacote básico quando 23 horas' + ); + testeGenerico( + 53, + 'pacote_intermediario', + 'Calcular pacote intermediário quando 53 horas' + ); + testeGenerico( + 199, + 'pacote_premium', + 'Calcular pacote premium quando 199 horas' + ); + testeGenerico( + 100, + 'pacote_intermediario', + 'Calcular pacote intermediario quando 100 horas' + ); + testeGenerico( + 50, + 'pacote_basico', + 'Calcular pacote basico quando 50 horas' + ); +}) diff --git a/src/entregasDesafio/ava-pimmel-correa/valorHora.test.js b/src/entregasDesafio/ava-pimmel-correa/valorHora.test.js new file mode 100644 index 0000000..7538166 --- /dev/null +++ b/src/entregasDesafio/ava-pimmel-correa/valorHora.test.js @@ -0,0 +1,14 @@ +const valorHora = require('../../dominio/calculadora/Hora/valorHora'); + +var testeGenerico = (valHoraEsperado, valorSalario, stringTeste) => { + test(stringTeste, () => { + const calculo = valorHora.calcularValorPorHora(valorSalario); + expect(calculo).toBe(valHoraEsperado); + }); +}; + +describe( 'Teste do calculo valor da hora', () => { + testeGenerico(18, 3000, 'Teste para salario 3000'); + testeGenerico(23, 4000, 'Teste para salario 4000'); + testeGenerico(86, 15000, 'Teste para salario 3000'); +}); diff --git a/src/entregasDesafio/ava-pimmel-correa/valorProjeto.test.js b/src/entregasDesafio/ava-pimmel-correa/valorProjeto.test.js new file mode 100644 index 0000000..0d9cf11 --- /dev/null +++ b/src/entregasDesafio/ava-pimmel-correa/valorProjeto.test.js @@ -0,0 +1,53 @@ +const valorProjeto = require('../../dominio/calculadora/Projeto/valorProjeto'); + +var testeGenerico = (valorHora, funcionalidades, valorEsperado, stringTeste) => { + test(stringTeste, () => { + const calculo = valorProjeto.calcularValorTotalProjeto(funcionalidades, valorHora) + expect(calculo).toBe(valorEsperado); + }); +}; + +describe('Pacote basico', () => { + testeGenerico( + 30, + ['formulario', 'responsividade'], + 1056, + 'Calcular valor total do projeto quando 32 horas e 30 reais/hora' + ); + testeGenerico( + 30, + ['formulario', 'construcao_1_pagina'], + 792, + 'Calcular valor total do projeto quando 24 horas e 30 reais/hora' + ); +}); + +describe('Pacote intermediario', () => { + testeGenerico( + 30, + ['formulario', 'responsividade', 'otimizacao_seo', 'integracao_mailchimp'], + 2150, + 'Calcular valor total do projeto quando 64 horas e 30 reais/hora' + ); + testeGenerico( + 30, + ['formulario', 'responsividade', 'otimizacao_seo', 'integracao_mailchimp', 'setup'], + 2419, + 'Calcular valor total do projeto quando 72 horas e 30 reais/hora' + ); +}); + +describe('Pacote premium', () => { + testeGenerico( + 30, + ['formulario', 'responsividade', 'otimizacao_seo', 'integracao_mailchimp', 'setup', 'formulario', 'formulario', 'ssr'], + 3864, + 'Calcular valor total do projeto quando 112 horas e 30 reais/hora' + ); + testeGenerico( + 30, + ['formulario', 'responsividade', 'otimizacao_seo', 'integracao_mailchimp', 'setup', 'formulario', 'formulario'], + 3588, + 'Calcular valor total do projeto quando 104 horas e 30 reais/hora' + ); +}); \ No newline at end of file diff --git a/src/entregasDesafio/ava-pimmel-correa/valorProjetoComMock.test.js b/src/entregasDesafio/ava-pimmel-correa/valorProjetoComMock.test.js new file mode 100644 index 0000000..f91f38c --- /dev/null +++ b/src/entregasDesafio/ava-pimmel-correa/valorProjetoComMock.test.js @@ -0,0 +1,65 @@ +const valorProjeto = require('../../dominio/calculadora/Projeto/valorProjeto'); +const pacote = require('../../dominio/calculadora/Projeto/pacote') + +jest.mock('../../dominio/calculadora/Projeto/pacote') + +var testeGenerico = (valorHora, funcionalidades, valorEsperado, stringTeste) => { + test(stringTeste, () => { + const calculo = valorProjeto.calcularValorTotalProjeto(funcionalidades, valorHora) + expect(calculo).toBe(valorEsperado); + }); +}; + +describe('Pacote basico', () => { + beforeEach( () => { + pacote.calcularPacote.mockReturnValue('pacote_basico') + }); + testeGenerico( + 30, + ['formulario', 'responsividade'], + 1056, + 'Calcular valor total do projeto quando 32 horas e 30 reais/hora' + ); + testeGenerico( + 30, + ['formulario', 'construcao_1_pagina'], + 792, + 'Calcular valor total do projeto quando 24 horas e 30 reais/hora' + ); +}); + +describe('Pacote intermediario', () => { + beforeEach( () => { + pacote.calcularPacote.mockReturnValue('pacote_intermediario') + }); + testeGenerico( + 30, + ['formulario', 'responsividade', 'otimizacao_seo', 'integracao_mailchimp'], + 2150, + 'Calcular valor total do projeto quando 64 horas e 30 reais/hora' + ); + testeGenerico( + 30, + ['formulario', 'responsividade', 'otimizacao_seo', 'integracao_mailchimp', 'setup'], + 2419, + 'Calcular valor total do projeto quando 72 horas e 30 reais/hora' + ); +}); + +describe('Pacote premium', () => { + beforeEach( () => { + pacote.calcularPacote.mockReturnValue('pacote_premium') + }); + testeGenerico( + 30, + ['formulario', 'responsividade', 'otimizacao_seo', 'integracao_mailchimp', 'setup', 'formulario', 'formulario', 'ssr'], + 3864, + 'Calcular valor total do projeto quando 112 horas e 30 reais/hora' + ); + testeGenerico( + 30, + ['formulario', 'responsividade', 'otimizacao_seo', 'integracao_mailchimp', 'setup', 'formulario', 'formulario'], + 3588, + 'Calcular valor total do projeto quando 104 horas e 30 reais/hora' + ); +}); \ No newline at end of file diff --git a/src/entregasDesafio/exemplo-nome-sobrenome/valorHora.test.js b/src/entregasDesafio/exemplo-nome-sobrenome/valorHora.test.js deleted file mode 100644 index e69de29..0000000