From b8396faad41d81266a141e18652464dda5232c91 Mon Sep 17 00:00:00 2001 From: DoriansFer Date: Sun, 21 May 2023 17:51:03 -0300 Subject: [PATCH 1/2] Exercicios oficina teste com jest --- package.json | 6 +++- .../calculadora/Hora/valorHora.test.js | 16 ++++++++++ .../Projeto/horasPorProjeto.test.js | 24 +++++++++++++++ .../calculadora/Projeto/pacote.test.js | 18 ++++++++++++ .../calculadora/Projeto/valorProjeto.test.js | 29 +++++++++++++++++++ .../exemplo-doria-fernandes/soma.js | 5 ++++ .../exemplo-doria-fernandes/soma.test.js | 6 ++++ .../valorHora.test.js | 0 8 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 src/dominio/calculadora/Hora/valorHora.test.js create mode 100644 src/dominio/calculadora/Projeto/horasPorProjeto.test.js create mode 100644 src/dominio/calculadora/Projeto/pacote.test.js create mode 100644 src/dominio/calculadora/Projeto/valorProjeto.test.js create mode 100644 src/entregasDesafio/exemplo-doria-fernandes/soma.js create mode 100644 src/entregasDesafio/exemplo-doria-fernandes/soma.test.js rename src/entregasDesafio/{exemplo-nome-sobrenome => exemplo-doria-fernandes}/valorHora.test.js (100%) 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.test.js b/src/dominio/calculadora/Projeto/valorProjeto.test.js new file mode 100644 index 00000000..8fd23ee4 --- /dev/null +++ b/src/dominio/calculadora/Projeto/valorProjeto.test.js @@ -0,0 +1,29 @@ +const { calcularValorTotalProjeto} = 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) + + }) +}) \ 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 From 56c8d021d8366c92eb79a3ab49a0a31d1fac00a3 Mon Sep 17 00:00:00 2001 From: DoriansFer Date: Sun, 21 May 2023 19:14:41 -0300 Subject: [PATCH 2/2] Exercicios oficina teste com jest- Doria --- .../calculadora/Projeto/valorProjeto.js | 1 + .../calculadora/Projeto/valorProjeto.test.js | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) 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 index 8fd23ee4..d87c56bb 100644 --- a/src/dominio/calculadora/Projeto/valorProjeto.test.js +++ b/src/dominio/calculadora/Projeto/valorProjeto.test.js @@ -1,4 +1,6 @@ const { calcularValorTotalProjeto} = require ('./valorProjeto'); +const { calcularHorasDeProjeto } = require('./horasPorProjeto'); +const { calcularValorBaseProjeto } = require ('./valorProjeto'); const pacote = require ('./pacote') @@ -26,4 +28,30 @@ describe ('valor do projeto', ()=>{ 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