From 1dc305599a62d38881b87b7e02cd401394f1c5e3 Mon Sep 17 00:00:00 2001 From: Carol Fernandes <81500528+CarolFernandes7@users.noreply.github.com> Date: Sat, 8 Jun 2024 16:36:28 -0300 Subject: [PATCH] Add files via upload --- calcularPacote.test.js | 24 ++++++++++++++++++++++++ horasPorProjeto.test.js | 40 ++++++++++++++++++++++++++++++++++++++++ valorHora.test.js | 32 ++++++++++++++++++++++++++++++++ valorProjeto.test.js | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 128 insertions(+) create mode 100644 calcularPacote.test.js create mode 100644 horasPorProjeto.test.js create mode 100644 valorHora.test.js create mode 100644 valorProjeto.test.js diff --git a/calcularPacote.test.js b/calcularPacote.test.js new file mode 100644 index 0000000..3a3f336 --- /dev/null +++ b/calcularPacote.test.js @@ -0,0 +1,24 @@ +const { calcularPacote } = require('../../dominio/calculadora/Projeto/pacote'); + +describe("Calcular Pacote", () => { + test('calcular pacote básico', () => { + const horasTrabalhadas = 40; // Simula 40 horas trabalhadas + const pacoteEsperado = 'pacote_basico'; + const pacoteCalculado = calcularPacote(horasTrabalhadas); + expect(pacoteCalculado).toBe(pacoteEsperado); + }); + + test('calcular pacote intermediário', () => { + const horasTrabalhadas = 90; // Simula 90 horas trabalhadas + const pacoteEsperado = 'pacote_intermediario'; + const pacoteCalculado = calcularPacote(horasTrabalhadas); + expect(pacoteCalculado).toBe(pacoteEsperado); + }); + + test('calcular pacote premium', () => { + const horasTrabalhadas = 150; // Simula 150 horas trabalhadas + const pacoteEsperado = 'pacote_premium'; + const pacoteCalculado = calcularPacote(horasTrabalhadas); + expect(pacoteCalculado).toBe(pacoteEsperado); + }); +}); diff --git a/horasPorProjeto.test.js b/horasPorProjeto.test.js new file mode 100644 index 0000000..5556b1b --- /dev/null +++ b/horasPorProjeto.test.js @@ -0,0 +1,40 @@ +const { calcularHorasDeProjeto } = require('../../../../dominio/calculadora/Projeto/horasPorProjeto'); + + + +describe("Calcular horas de projeto", () => { + test('calcular horas de projeto - 1 funcionalidade duplicada', () => { + const listaDeFuncionalidades = ['formulario', 'formulario']; + const retornado = calcularHorasDeProjeto(listaDeFuncionalidades); + const esperado = 32; // 16 (formulario) * 2 + expect(retornado).toBe(esperado); + }); + + test('calcular horas de projeto - múltiplas funcionalidades', () => { + const listaDeFuncionalidades = ['formulario', 'setup', 'responsividade']; + const retornado = calcularHorasDeProjeto(listaDeFuncionalidades); + const esperado = 40; // 16 (formulario) + 8 (setup) + 16 (responsividade) + expect(retornado).toBe(esperado); + }); + + test('calcular horas de projeto - sem funcionalidades', () => { + const listaDeFuncionalidades = []; + const retornado = calcularHorasDeProjeto(listaDeFuncionalidades); + const esperado = 0; + expect(retornado).toBe(esperado); + }); + + test('calcular horas de projeto - funcionalidade inexistente', () => { + const listaDeFuncionalidades = ['formulario', 'funcionalidade_inexistente']; + const retornado = calcularHorasDeProjeto(listaDeFuncionalidades); + const esperado = 16; // 16 (formulario), funcionalidade inexistente não conta + expect(retornado).toBe(esperado); + }); + + test('calcular horas de projeto - todas as funcionalidades', () => { + const listaDeFuncionalidades = ['setup', 'formulario', 'responsividade', 'otimizacao_seo', 'construcao_1_pagina', 'integracao_mailchimp', 'ssr', 'integracao_api_propria']; + const retornado = calcularHorasDeProjeto(listaDeFuncionalidades); + const esperado = 104; // 8 + 16 + 16 + 16 + 8 + 16 + 8 + 16 + expect(retornado).toBe(esperado); + }); +}); diff --git a/valorHora.test.js b/valorHora.test.js new file mode 100644 index 0000000..10e90ef --- /dev/null +++ b/valorHora.test.js @@ -0,0 +1,32 @@ +const { calcularValorPorHora } = require('../../dominio/calculadora/Hora/valorHora'); + +describe("Calcular valor por hora", () => { + test("Deve calcular o valor correto por hora baseado na renda mensal", () => { + const rendaMensal = 3000; + const valorEsperado = 19; // Math.ceil(3000 / 160) + const valorCalculado = calcularValorPorHora(rendaMensal); + expect(valorCalculado).toBe(valorEsperado); + }); + + test("Deve calcular o valor correto por hora com uma renda mensal de 5000", () => { + const rendaMensal = 5000; + const valorEsperado = 32; // Math.ceil(5000 / 160) + const valorCalculado = calcularValorPorHora(rendaMensal); + expect(valorCalculado).toBe(valorEsperado); + }); + + test("Deve calcular o valor correto por hora com uma renda mensal de 0", () => { + const rendaMensal = 0; + const valorEsperado = 0; // Math.ceil(0 / 160) + const valorCalculado = calcularValorPorHora(rendaMensal); + expect(valorCalculado).toBe(valorEsperado); + }); + + test("Deve calcular o valor correto por hora com uma renda mensal negativa", () => { + const rendaMensal = -3000; + const valorEsperado = -17; // Math.ceil(-3000 / 160) + const valorCalculado = calcularValorPorHora(rendaMensal); + expect(valorCalculado).toBe(valorEsperado); + }); +}); + diff --git a/valorProjeto.test.js b/valorProjeto.test.js new file mode 100644 index 0000000..7390729 --- /dev/null +++ b/valorProjeto.test.js @@ -0,0 +1,32 @@ +const { calcularHorasDeProjeto } = require('../../dominio/calculadora/Projeto/horasPorProjeto'); // Corrija o caminho se necessário +const pacote = require('../../dominio/calculadora/Projeto/pacote'); + +// Mock do módulo 'pacote' +jest.mock('../../dominio/calculadora/Projeto/pacote'); + +describe("Calcular valor total do projeto", () => { + // Dados de entrada para os testes + const horas = 30; + const valorHora = 30; + + test("deve calcular o valor total para o pacote básico", () => { + const tipoPacote = 'basico'; + const resultadoEsperado = horas * valorHora * 1.1; + const resultadoCalculado = calcularValorTotalProjeto(horas, valorHora, tipoPacote); + expect(resultadoCalculado).toBe(resultadoEsperado); + }); + + test("deve calcular o valor total para o pacote intermediário", () => { + const tipoPacote = 'intermediario'; + const resultadoEsperado = horas * valorHora * 1.2; + const resultadoCalculado = calcularValorTotalProjeto(horas, valorHora, tipoPacote); + expect(resultadoCalculado).toBe(resultadoEsperado); + }); + + test("deve calcular o valor total para o pacote premium", () => { + const tipoPacote = 'premium'; + const resultadoEsperado = horas * valorHora * 1.3; + const resultadoCalculado = calcularValorTotalProjeto(horas, valorHora, tipoPacote); + expect(resultadoCalculado).toBe(resultadoEsperado); + }); +});