From d4d0ea7c22e14eeb6540271de91d90b356adf1b3 Mon Sep 17 00:00:00 2001 From: Nicole Siqueira Fagundes Date: Sat, 20 May 2023 14:23:20 -0300 Subject: [PATCH 1/2] =?UTF-8?q?Testes=20unit=C3=A1rios=20da=20fun=C3=A7?= =?UTF-8?q?=C3=A3o=20calcularValorHora?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 6 +++++- .../exemplo-nome-sobrenome/valorHora.test.js | 0 .../milena-martins/valorHora.test.js | 1 - src/entregasDesafio/nicole-fagundes/sum.js | 5 +++++ src/entregasDesafio/nicole-fagundes/sum.test.js | 10 ++++++++++ .../nicole-fagundes/valorHora.test.js | 16 ++++++++++++++++ 6 files changed, 36 insertions(+), 2 deletions(-) delete mode 100644 src/entregasDesafio/exemplo-nome-sobrenome/valorHora.test.js delete mode 100644 src/entregasDesafio/milena-martins/valorHora.test.js create mode 100644 src/entregasDesafio/nicole-fagundes/sum.js create mode 100644 src/entregasDesafio/nicole-fagundes/sum.test.js create mode 100644 src/entregasDesafio/nicole-fagundes/valorHora.test.js diff --git a/package.json b/package.json index 1c34a0ac..15a492ec 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,10 @@ "keywords": [], "author": "", "license": "ISC", - "dependencies": { + "devDependencies": { + "jest": "^29.5.0" + }, + "scripts": { + "test": "jest" } } 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 e69de29b..00000000 diff --git a/src/entregasDesafio/milena-martins/valorHora.test.js b/src/entregasDesafio/milena-martins/valorHora.test.js deleted file mode 100644 index 43d00b1b..00000000 --- a/src/entregasDesafio/milena-martins/valorHora.test.js +++ /dev/null @@ -1 +0,0 @@ -// Testes aqui \ No newline at end of file diff --git a/src/entregasDesafio/nicole-fagundes/sum.js b/src/entregasDesafio/nicole-fagundes/sum.js new file mode 100644 index 00000000..ce001eea --- /dev/null +++ b/src/entregasDesafio/nicole-fagundes/sum.js @@ -0,0 +1,5 @@ +function sum(a, b){ + return a + b +} + +module.exports = sum \ No newline at end of file diff --git a/src/entregasDesafio/nicole-fagundes/sum.test.js b/src/entregasDesafio/nicole-fagundes/sum.test.js new file mode 100644 index 00000000..f57d3b92 --- /dev/null +++ b/src/entregasDesafio/nicole-fagundes/sum.test.js @@ -0,0 +1,10 @@ +const sum = require('./sum') + +test("adicionando 1 + 2 e e não tem que retornar 0", () => { + expect(sum(1, 2)).not.toBe(0) + }) + +test("1 + 2 = 3", () => { + expect(sum(1, 2)).toBe(3) +}) + diff --git a/src/entregasDesafio/nicole-fagundes/valorHora.test.js b/src/entregasDesafio/nicole-fagundes/valorHora.test.js new file mode 100644 index 00000000..8efa65c3 --- /dev/null +++ b/src/entregasDesafio/nicole-fagundes/valorHora.test.js @@ -0,0 +1,16 @@ +const { calcularValorPorHora } = require("../../dominio/calculadora/Hora/valorHora") + +describe("Calcular valor por hora", () => { + + const valorPorHoraCalculado = calcularValorPorHora(1300); + const valorPorHoraEsperado = 8; + test("Valor por hora para um salário mínimo de 1300 reais deve ser 8reais/hora", () => { + expect(valorPorHoraCalculado).toBe(valorPorHoraEsperado) + + }) + + test("Valor por hora do salário mínimo seja maior que zero", () => { + const zero = 0; + expect(valorPorHoraCalculado).toBeGreaterThan(zero) + }) +}) From 64147189090de8d00e082a0f16789d93697c3536 Mon Sep 17 00:00:00 2001 From: Nicole Siqueira Fagundes Date: Sat, 20 May 2023 17:07:04 -0300 Subject: [PATCH 2/2] ajustando erro no arquivo pacote e teste do valor total --- .../calculadora/constantes/constantes.js | 4 +-- .../nicole-fagundes/Pacote/pacote.js | 7 ++++ .../nicole-fagundes/Pacote/pacote.test.js | 16 ++++++++++ .../nicole-fagundes/{ => Sum}/sum.js | 0 .../nicole-fagundes/{ => Sum}/sum.test.js | 0 .../nicole-fagundes/horasPorProjeto.test.js | 32 +++++++++++++++++++ .../nicole-fagundes/valorProjeto.test.js | 30 +++++++++++++++++ 7 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 src/entregasDesafio/nicole-fagundes/Pacote/pacote.js create mode 100644 src/entregasDesafio/nicole-fagundes/Pacote/pacote.test.js rename src/entregasDesafio/nicole-fagundes/{ => Sum}/sum.js (100%) rename src/entregasDesafio/nicole-fagundes/{ => Sum}/sum.test.js (100%) create mode 100644 src/entregasDesafio/nicole-fagundes/horasPorProjeto.test.js create mode 100644 src/entregasDesafio/nicole-fagundes/valorProjeto.test.js diff --git a/src/dominio/calculadora/constantes/constantes.js b/src/dominio/calculadora/constantes/constantes.js index 2bb57f03..d18835c1 100644 --- a/src/dominio/calculadora/constantes/constantes.js +++ b/src/dominio/calculadora/constantes/constantes.js @@ -9,8 +9,8 @@ const MAX_HORAS_POR_PACOTE = { const TAXAS_CONTRATUAIS_POR_PACOTE = { pacote_basico: 1.1, // 10% - pacote_intermediario: 1.2, // 12% - pacote_premium: 1.5 // 15% + pacote_intermediario: 1.12, // 12% + pacote_premium: 1.15 // 15% } const HORAS_POR_FUNCIONALIDADE = { diff --git a/src/entregasDesafio/nicole-fagundes/Pacote/pacote.js b/src/entregasDesafio/nicole-fagundes/Pacote/pacote.js new file mode 100644 index 00000000..d9d52369 --- /dev/null +++ b/src/entregasDesafio/nicole-fagundes/Pacote/pacote.js @@ -0,0 +1,7 @@ +const { MAX_HORAS_POR_PACOTE } = require('../../../dominio/calculadora/constantes/constantes'); + +const calcularPacote = (totalDeHorasPorProjeto) => Object.entries(MAX_HORAS_POR_PACOTE) + .find(([key, value]) => value >= totalDeHorasPorProjeto +)[0]; + +exports.calcularPacote = calcularPacote; diff --git a/src/entregasDesafio/nicole-fagundes/Pacote/pacote.test.js b/src/entregasDesafio/nicole-fagundes/Pacote/pacote.test.js new file mode 100644 index 00000000..a7f5e94f --- /dev/null +++ b/src/entregasDesafio/nicole-fagundes/Pacote/pacote.test.js @@ -0,0 +1,16 @@ +const { calcularPacote } = require("./pacote"); + +describe("Calcular pacote", () => { + test("Um projeto de 104 horas deve retornar pacote_premium", () => { + const horasDeProjeto = 104 + + expect(calcularPacote(horasDeProjeto)).toBe("pacote_premium") + }) + + //a conta dessa função está errada, tem que arrumar no arquivo que está na minha pasta (projeto.js). Testar as possibilidades de pacotes + test("Projeto de 50 horas deve retornar o pacote básico", () => { + const horasDeProjeto = 50; + + expect(calcularPacote(horasDeProjeto)).toBe("pacote_basico") + }) +}) \ No newline at end of file diff --git a/src/entregasDesafio/nicole-fagundes/sum.js b/src/entregasDesafio/nicole-fagundes/Sum/sum.js similarity index 100% rename from src/entregasDesafio/nicole-fagundes/sum.js rename to src/entregasDesafio/nicole-fagundes/Sum/sum.js diff --git a/src/entregasDesafio/nicole-fagundes/sum.test.js b/src/entregasDesafio/nicole-fagundes/Sum/sum.test.js similarity index 100% rename from src/entregasDesafio/nicole-fagundes/sum.test.js rename to src/entregasDesafio/nicole-fagundes/Sum/sum.test.js diff --git a/src/entregasDesafio/nicole-fagundes/horasPorProjeto.test.js b/src/entregasDesafio/nicole-fagundes/horasPorProjeto.test.js new file mode 100644 index 00000000..32c0db76 --- /dev/null +++ b/src/entregasDesafio/nicole-fagundes/horasPorProjeto.test.js @@ -0,0 +1,32 @@ +const { calcularHorasDeProjeto } = require("../../dominio/calculadora/Projeto/horasPorProjeto") + +describe("Calcular horas de projeto", () => { + test("Se a lista contendo 3 funcionalidades terá 24 horas", () => { + const listaDeFuncionalidades = ["setup", "construcao_1_pagina", "ssr"] + expect(calcularHorasDeProjeto(listaDeFuncionalidades)).toBe(24) + }) + + test("Calcular horas quando não existe a funcionalidade", () => { + const listaDeFuncionalidadeInexistente = ["testes"] + + expect(calcularHorasDeProjeto(listaDeFuncionalidadeInexistente)).toBeNaN() + }) + + test("Todas as funcionalidades retornam 104 horas de projeto", () => { + const listaTodas = [ + "setup", + "formulario", + "responsividade", + "otimizacao_seo", + "construcao_1_pagina", + "integracao_mailchimp", + "ssr", + "integracao_api_propria" + + + ] + + expect(calcularHorasDeProjeto(listaTodas)).toBe(104) + }) +}) + diff --git a/src/entregasDesafio/nicole-fagundes/valorProjeto.test.js b/src/entregasDesafio/nicole-fagundes/valorProjeto.test.js new file mode 100644 index 00000000..7f899bbe --- /dev/null +++ b/src/entregasDesafio/nicole-fagundes/valorProjeto.test.js @@ -0,0 +1,30 @@ +const { calcularValorTotalProjeto } = require("../../dominio/calculadora/Projeto/valorProjeto") + +describe("Calcular o valor total do projeto com todas as funcionalidades", () => { + const valorHorasPorProjeto = 104; + const valorHora = 8; + const listaFuncionalidades = [ + "setup", + "formulario", + "responsividade", + "otimizacao_seo", + "construcao_1_pagina", + "integracao_mailchimp", + "ssr", + "integracao_api_propria" + + ] + test("O valor base do projeto com todas as funcionalidades deve retornar 832", () => { + + const valorBase = valorHorasPorProjeto * valorHora; + + expect(valorBase).toBe(832); + }) + + test("O valor total do projeto deve ser R$957", () => { + + expect(calcularValorTotalProjeto(listaFuncionalidades, valorHora)).toBe(957) + + + }) +})