Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions calcularPacote.test.js
Original file line number Diff line number Diff line change
@@ -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);
});
});
40 changes: 40 additions & 0 deletions horasPorProjeto.test.js
Original file line number Diff line number Diff line change
@@ -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);
});
});
32 changes: 32 additions & 0 deletions valorHora.test.js
Original file line number Diff line number Diff line change
@@ -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);
});
});

32 changes: 32 additions & 0 deletions valorProjeto.test.js
Original file line number Diff line number Diff line change
@@ -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);
});
});