diff --git a/package.json b/package.json index 1c34a0ac..1e3f393a 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,13 @@ "version": "1.0.0", "description": "", "main": "index.js", + "scripts": { + "test": "jest" + }, "keywords": [], "author": "", "license": "ISC", - "dependencies": { + "devDependencies": { + "jest": "^29.5.0" } } diff --git a/src/dominio/calculadora/Hora/valorHora.test.js b/src/dominio/calculadora/Hora/valorHora.test.js new file mode 100644 index 00000000..fb8d3a68 --- /dev/null +++ b/src/dominio/calculadora/Hora/valorHora.test.js @@ -0,0 +1,16 @@ +const { calcularValorPorHora} = require ('./valorHora') + +test ('retornar o valor arredondado correto dado por mês', () => { + expect (calcularValorPorHora(5000)).toBe(10) +}) + +describe ('Valor por hora',() => { + test('retornar o valor arredondado correto dado o valor recebido por mês ', ()=> { + const valorPorMes = 1300; + + const result = calcularValorPorHora(valorPorMes); + + expect(result).toEqual(8); + }); + +}); \ No newline at end of file diff --git a/src/dominio/calculadora/Projeto/horasPorProjeto.test.js b/src/dominio/calculadora/Projeto/horasPorProjeto.test.js new file mode 100644 index 00000000..4e6e67e2 --- /dev/null +++ b/src/dominio/calculadora/Projeto/horasPorProjeto.test.js @@ -0,0 +1,24 @@ +const { calcularHorasDeProjeto } = require('./horasPorProjeto'); + +describe('Cálculo de horas totais para finalizar um projeto', () =>{ + test('Dado um array com as funcionalidades desejadas no projeto, retornar a soma das horas das funcionalidades', () =>{ + const funcionalidades = [ + 'setup', + 'responsividade', + 'construcao_1_pagina', + 'construcao_1_pagina', + 'construcao_1_pagina', + 'formulario', + 'ssr' + ] + const result = calcularHorasDeProjeto(funcionalidades); + + expect(result).toEqual(72) + }) +}) + +test('Calcular horas com funcionalidade que não existe', () =>{ + const listaDeFuncionalidadesNaoExiste = ['formulario'] + + expect(calcularHorasDeProjeto(listaDeFuncionalidadesNaoExiste)).toBeNaN() +}) diff --git a/src/dominio/calculadora/Projeto/pacote.test.js b/src/dominio/calculadora/Projeto/pacote.test.js new file mode 100644 index 00000000..a0b8ab7c --- /dev/null +++ b/src/dominio/calculadora/Projeto/pacote.test.js @@ -0,0 +1,18 @@ +const { calcularPacote} = require ('./pacote'); + +describe ('Calcular pacote correto para cada projeto',()=>{ + test('Retorna pacote básico caso o número total seja até 50',() => { +const totalDeHorasPorProjeto = 49 +const result = calcularPacote(totalDeHorasPorProjeto); + +expect(result).toEqual('pacote_basico') + + }) + + test('Retornar pacote básico caso o número total de horas seja exatamente 50', ()=>{ + const totalDeHorasPorProjeto = 50 + const result = calcularPacote(totalDeHorasPorProjeto); + + expect (result).toEqual('pacote_basico') + }) +}) \ No newline at end of file diff --git a/src/dominio/calculadora/Projeto/valorProjeto.js b/src/dominio/calculadora/Projeto/valorProjeto.js index cf04340c..7f662c49 100644 --- a/src/dominio/calculadora/Projeto/valorProjeto.js +++ b/src/dominio/calculadora/Projeto/valorProjeto.js @@ -17,3 +17,4 @@ const calcularValorTotalProjeto = (funcionalidades, valorHora) => { } exports.calcularValorTotalProjeto = calcularValorTotalProjeto; +exports.calcularValorBaseProjeto = calcularValorBaseProjeto; \ No newline at end of file diff --git a/src/dominio/calculadora/Projeto/valorProjeto.test.js b/src/dominio/calculadora/Projeto/valorProjeto.test.js new file mode 100644 index 00000000..d87c56bb --- /dev/null +++ b/src/dominio/calculadora/Projeto/valorProjeto.test.js @@ -0,0 +1,57 @@ +const { calcularValorTotalProjeto} = require ('./valorProjeto'); +const { calcularHorasDeProjeto } = require('./horasPorProjeto'); +const { calcularValorBaseProjeto } = require ('./valorProjeto'); + +const pacote = require ('./pacote') + +jest.mock ('./pacote.js') + +describe ('valor do projeto', ()=>{ + beforeEach (() => { + pacote.calcularPacote.mockReturnValue('pacote_basico'); + }) + test('retornar valor total para um projeto dado as funcionalidades', ()=>{ + // A soma dá 72 + const funcionalidades = [ + 'setup', + 'responsividade', + 'construcao_1_pagina', + 'construcao_1_pagina', + 'construcao_1_pagina', + 'formulario', + 'ssr' + ]; + const valorHora = 70; + + const result = calcularValorTotalProjeto (funcionalidades, valorHora) + + expect(result).toEqual(5544) + + }) + + +}) +describe ('valor base do projeto', ()=>{ + beforeEach (() => { + pacote.calcularPacote.mockReturnValue('pacote_basico'); + }) + test('Retornar valor base do Projeto, para questão de visualização',()=>{ + const funcionalidades = [ + 'setup', + 'responsividade', + 'construcao_1_pagina', + 'construcao_1_pagina', + 'construcao_1_pagina', + 'formulario', + 'ssr' + ] + + const valorHora = 70; + + const totalDeHorasPorProjeto = calcularHorasDeProjeto(funcionalidades); + + const result = calcularValorBaseProjeto (totalDeHorasPorProjeto, valorHora); + + expect (result).toEqual(5040) + } ) +}) \ No newline at end of file diff --git a/src/entregasDesafio/exemplo-doria-fernandes/soma.js b/src/entregasDesafio/exemplo-doria-fernandes/soma.js new file mode 100644 index 00000000..ab525368 --- /dev/null +++ b/src/entregasDesafio/exemplo-doria-fernandes/soma.js @@ -0,0 +1,5 @@ +function soma (a , b) { + return a + b; +} + +module.exports = soma; \ No newline at end of file diff --git a/src/entregasDesafio/exemplo-doria-fernandes/soma.test.js b/src/entregasDesafio/exemplo-doria-fernandes/soma.test.js new file mode 100644 index 00000000..fb4398f9 --- /dev/null +++ b/src/entregasDesafio/exemplo-doria-fernandes/soma.test.js @@ -0,0 +1,6 @@ +const soma = require ('./soma') + +test(" A Soma de 1 + 2 é 3", () =>{ + + expect (soma(1,2)).toBe(3); +}); \ No newline at end of file diff --git a/src/entregasDesafio/exemplo-nome-sobrenome/valorHora.test.js b/src/entregasDesafio/exemplo-doria-fernandes/valorHora.test.js similarity index 100% rename from src/entregasDesafio/exemplo-nome-sobrenome/valorHora.test.js rename to src/entregasDesafio/exemplo-doria-fernandes/valorHora.test.js