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/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/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/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/sum.js b/src/entregasDesafio/nicole-fagundes/Sum/sum.js new file mode 100644 index 00000000..ce001eea --- /dev/null +++ b/src/entregasDesafio/nicole-fagundes/Sum/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/sum.test.js b/src/entregasDesafio/nicole-fagundes/Sum/sum.test.js new file mode 100644 index 00000000..f57d3b92 --- /dev/null +++ b/src/entregasDesafio/nicole-fagundes/Sum/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/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/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) + }) +}) 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) + + + }) +})