From c195ada75c53d20312c6ff4f5ba34676d7e21395 Mon Sep 17 00:00:00 2001 From: Ciane <100417980+ciane-pereira@users.noreply.github.com> Date: Sat, 20 May 2023 14:25:14 -0300 Subject: [PATCH 1/2] =?UTF-8?q?teste=20unit=C3=A1rio=20de=20fun=C3=A7?= =?UTF-8?q?=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 8 ++++++-- src/entregasDesafio/ciane_pereira/sum.js | 4 ++++ src/entregasDesafio/ciane_pereira/sum.test.js | 10 ++++++++++ .../exemplo-nome-sobrenome/valorHora.test.js | 0 src/entregasDesafio/milena-martins/valorHora.test.js | 1 - 5 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 src/entregasDesafio/ciane_pereira/sum.js create mode 100644 src/entregasDesafio/ciane_pereira/sum.test.js delete mode 100644 src/entregasDesafio/exemplo-nome-sobrenome/valorHora.test.js delete mode 100644 src/entregasDesafio/milena-martins/valorHora.test.js diff --git a/package.json b/package.json index 1c34a0ac..7a26aa1f 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/ciane_pereira/sum.js b/src/entregasDesafio/ciane_pereira/sum.js new file mode 100644 index 00000000..1d51d697 --- /dev/null +++ b/src/entregasDesafio/ciane_pereira/sum.js @@ -0,0 +1,4 @@ +function sum(a,b) { + return a + b +} +module.exports = sum; \ No newline at end of file diff --git a/src/entregasDesafio/ciane_pereira/sum.test.js b/src/entregasDesafio/ciane_pereira/sum.test.js new file mode 100644 index 00000000..04ec8008 --- /dev/null +++ b/src/entregasDesafio/ciane_pereira/sum.test.js @@ -0,0 +1,10 @@ + +const sum = require('./sum') + +test("adicionando 1+2 e tem que retornar 0", () => { + expect(sum(1, 2)).not.toBe(0) +}) + +test("2+2 = 4", () => { + expect(sum(2,2)).toBe(4) +}) \ 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 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 From 3fdd31dee249e1b496f04a04c38dbd89546a4921 Mon Sep 17 00:00:00 2001 From: Ciane <100417980+ciane-pereira@users.noreply.github.com> Date: Sun, 21 May 2023 16:35:07 -0300 Subject: [PATCH 2/2] =?UTF-8?q?Envio=20de=20testes=20unit=C3=A1rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../calculadora/constantes/constantes.js | 4 +-- .../ciane_pereira/horasPorProjeto.js | 9 +++++ .../ciane_pereira/horasPorProjeto.test.js | 33 +++++++++++++++++++ src/entregasDesafio/ciane_pereira/pacote.js | 7 ++++ .../ciane_pereira/pacote.test.js | 23 +++++++++++++ src/entregasDesafio/ciane_pereira/sum.test.js | 6 ++-- .../ciane_pereira/valorHora.test.js | 13 ++++++++ .../ciane_pereira/valorProjeto.test.js | 26 +++++++++++++++ 8 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 src/entregasDesafio/ciane_pereira/horasPorProjeto.js create mode 100644 src/entregasDesafio/ciane_pereira/horasPorProjeto.test.js create mode 100644 src/entregasDesafio/ciane_pereira/pacote.js create mode 100644 src/entregasDesafio/ciane_pereira/pacote.test.js create mode 100644 src/entregasDesafio/ciane_pereira/valorHora.test.js create mode 100644 src/entregasDesafio/ciane_pereira/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/ciane_pereira/horasPorProjeto.js b/src/entregasDesafio/ciane_pereira/horasPorProjeto.js new file mode 100644 index 00000000..ff19c80a --- /dev/null +++ b/src/entregasDesafio/ciane_pereira/horasPorProjeto.js @@ -0,0 +1,9 @@ +const { HORAS_POR_FUNCIONALIDADE } = require('../constantes/constantes'); + +const calcularHorasDeProjeto = (listaDeFuncionalidades) => ( + listaDeFuncionalidades + .map(func => HORAS_POR_FUNCIONALIDADE[func]) + .reduce((sum, currentValue) => sum + currentValue, 0) +); + +exports.calcularHorasDeProjeto = calcularHorasDeProjeto; diff --git a/src/entregasDesafio/ciane_pereira/horasPorProjeto.test.js b/src/entregasDesafio/ciane_pereira/horasPorProjeto.test.js new file mode 100644 index 00000000..a7f7b738 --- /dev/null +++ b/src/entregasDesafio/ciane_pereira/horasPorProjeto.test.js @@ -0,0 +1,33 @@ +const { calcularHorasDeProjeto } = require('../../dominio/calculadora/Projeto/horasPorProjeto') + +describe("Calcular Horas de projeto", () => { + test("Se a lista contém 3 funcionalidades terá 40 horas", ()=> { + const listaDeFuncionalidades = ["setup", "formulario", "responsividade"] + + expect(calcularHorasDeProjeto(listaDeFuncionalidades)).toBe(40) + }) + + test("Calcular horas quando não existe a funcionalidade", () => { + const listaDeFuncionalidadesInexistente = ["testes"] + + expect(calcularHorasDeProjeto(listaDeFuncionalidadesInexistente)).toBeNaN() + + }) + + test("Se a lista contém todas as funcionalidades terá 104 horas",() =>{ + const listaTodas = [ + 'setup', + 'formulario', + 'responsividade', + 'otimizacao_seo', + 'construcao_1_pagina', + 'integracao_mailchimp', + 'ssr', + 'integracao_api_propria' + ] + expect(calcularHorasDeProjeto(listaTodas)).toBe(104) + + }) + + +}) \ No newline at end of file diff --git a/src/entregasDesafio/ciane_pereira/pacote.js b/src/entregasDesafio/ciane_pereira/pacote.js new file mode 100644 index 00000000..7ae6cf8b --- /dev/null +++ b/src/entregasDesafio/ciane_pereira/pacote.js @@ -0,0 +1,7 @@ +const { MAX_HORAS_POR_PACOTE } = require('../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/ciane_pereira/pacote.test.js b/src/entregasDesafio/ciane_pereira/pacote.test.js new file mode 100644 index 00000000..b8e8376a --- /dev/null +++ b/src/entregasDesafio/ciane_pereira/pacote.test.js @@ -0,0 +1,23 @@ +const { calcularPacote } = require('../../dominio/calculadora/Projeto/pacote') + +describe("Calcular Pacote", () => { + test("Projeto de 104 horas deve retornar pacote Premium", () => { + const horasDeProjeto = 104 + + expect(calcularPacote(horasDeProjeto)).toBe('pacote_premium') + }) + + test("Projeto maior que 51 horas e menor que 100 horas deve retornar pacote intermediário", () => { + for (let horasDeProjeto = 51; horasDeProjeto < 100; horasDeProjeto++) { + + expect(calcularPacote(horasDeProjeto)).toBe('pacote_intermediario') + } + }) + + test("Projeto de 50 horas deve retornar pacote básico", () => { + const horasProjeto = 50 + }) + + expect(calcularPacote(horasProjeto)).toBe('pacote_basico') + }) + diff --git a/src/entregasDesafio/ciane_pereira/sum.test.js b/src/entregasDesafio/ciane_pereira/sum.test.js index 04ec8008..80dfd88e 100644 --- a/src/entregasDesafio/ciane_pereira/sum.test.js +++ b/src/entregasDesafio/ciane_pereira/sum.test.js @@ -1,10 +1,10 @@ const sum = require('./sum') -test("adicionando 1+2 e tem que retornar 0", () => { +test("adicionando 1+2 e tem que retornar 3", () => { expect(sum(1, 2)).not.toBe(0) }) -test("2+2 = 4", () => { - expect(sum(2,2)).toBe(4) +test("1+2 = 3", () => { + expect(sum(1,2)).toBe(3) }) \ No newline at end of file diff --git a/src/entregasDesafio/ciane_pereira/valorHora.test.js b/src/entregasDesafio/ciane_pereira/valorHora.test.js new file mode 100644 index 00000000..1c279576 --- /dev/null +++ b/src/entregasDesafio/ciane_pereira/valorHora.test.js @@ -0,0 +1,13 @@ +const { calcularValorPorHora } = require("../../dominio/calculadora/Hora/valorHora") + +describe("Calcular Valor Por Hora", () => { + test("Salário mínimo de 1300 reais", () => { + const valorPorHoraCalculado = calcularValorPorHora(1300) + const valorPorHoraEsperado = 8 + const zero = 0 + + expect(valorPorHoraCalculado).toBe(valorPorHoraEsperado) + expect(valorPorHoraCalculado).toBeGreaterThan(zero) + }) + +}) \ No newline at end of file diff --git a/src/entregasDesafio/ciane_pereira/valorProjeto.test.js b/src/entregasDesafio/ciane_pereira/valorProjeto.test.js new file mode 100644 index 00000000..2caa4982 --- /dev/null +++ b/src/entregasDesafio/ciane_pereira/valorProjeto.test.js @@ -0,0 +1,26 @@ +const { calcularValorTotalProjeto } = require('../../dominio/calculadora/Projeto/valorProjeto') + +describe("Calcular valor total projeto", () => { + + test("Projeto com 104 horas receber taxa contratual de 15% para valor do pacote Premium", () => { + const listaDeFuncionalidades = ['setup','formulario', 'responsividade','otimizacao_seo', 'construcao_1_pagina','integracao_mailchimp', 'ssr', 'integracao_api_propria'] + const valorHora = 8 + + expect(calcularValorTotalProjeto(listaDeFuncionalidades, valorHora)).toBe(957) + }) + + test("Projeto com 64 horas receber taxa contratual de 12% para valor do pacote Intermediário", () => { + const listaDeFuncionalidades = ['setup','formulario', 'responsividade','otimizacao_seo', 'construcao_1_pagina','integracao_mailchimp'] + const valorHora = 8 + + + }) + expect(calcularValorTotalProjeto(listaDeFuncionalidades, valorHora)).toBe(573) + + test("Projeto com 24 horas receber taxa contratual de 10% para valor do pacote Básico", () => { + const listaDeFuncionalidades = ['setup','formulario'] + const valorHora = 8 + + expect(calcularValorTotalProjeto(listaDeFuncionalidades, valorHora)).toBe(211) + }) +}) \ No newline at end of file