Skip to content

feat: Adiciona a logica dos feriados estaduais#758

Open
mtsmgn0 wants to merge 1 commit intoBrasilAPI:mainfrom
mtsmgn0:feat/feriados-estaduais-625
Open

feat: Adiciona a logica dos feriados estaduais#758
mtsmgn0 wants to merge 1 commit intoBrasilAPI:mainfrom
mtsmgn0:feat/feriados-estaduais-625

Conversation

@mtsmgn0
Copy link
Copy Markdown

@mtsmgn0 mtsmgn0 commented Nov 21, 2025

feat: Implementação da lógica de feriados estaduais com TDD

Este Pull Request adiciona a funcionalidade de cálculo de feriados estaduais, complementando o comportamento já existente de feriados nacionais.
Toda a implementação foi conduzida seguindo a abordagem de Test-Driven Development (TDD), garantindo que cada etapa fosse guiada por testes automatizados e documentada gradualmente.

Principais mudanças

Lógica de feriados estaduais

  • Implementado um mapa inicial contendo ao menos um feriado oficial para cada estado brasileiro.

  • Criada a função getStateHolidays, responsável por:

    • retornar os feriados correspondentes ao estado informado;
    • retornar um array vazio quando nenhum estado é enviado;
    • lançar um erro apropriado quando uma sigla de estado inválida é fornecida.

Suporte a testes

  • Adicionada uma pasta de testes dedicada à funcionalidade de feriados estaduais.

  • Os testes cobrem:

    • retorno de feriados estaduais para estados válidos;
    • retorno apenas de feriados nacionais quando nenhum estado é informado;
    • filtragem correta dos feriados estaduais pelo estado solicitado;
    • lançamento de erro quando um estado inválido é informado.

Ajuste na configuração do Vite

  • O arquivo vite.config.js foi modificado para permitir o uso do alias @ nos testes.
  • Agora é possível importar serviços diretamente, facilitando o desenvolvimento orientado a testes e futuras expansões da cobertura.

Possíveis evoluções futuras

  • Completar o conjunto de feriados estaduais de cada unidade federativa.
  • Centralizar todos os feriados estaduais em um arquivo JSON dedicado.
  • Expandir o uso da abordagem TDD para outras funcionalidades da plataforma.

@vercel
Copy link
Copy Markdown

vercel bot commented Nov 21, 2025

@mtsmgn0 is attempting to deploy a commit to the BrasilAPI Team on Vercel.

A member of the Team first needs to authorize it.

@sonarqubecloud
Copy link
Copy Markdown

@lucianopf
Copy link
Copy Markdown
Member

Olá @mtsmgn0! A adição de feriados estaduais é uma funcionalidade bem solicitada pela comunidade.

Algumas observações:

1. Sem endpoint exposto
O PR adiciona a função getStateHolidays no serviço, mas não cria nem modifica nenhum endpoint de API para expô-la. O endpoint atual /feriados/v1/{ano} não aceita parâmetro de estado. Seria necessário criar um novo endpoint (ex: /feriados/v1/{ano}/{estado}) ou adicionar um query param.

2. Dados estaticamente codificados
Os feriados estaduais estão hardcoded no código. Isso é um problema de manutenibilidade — eles mudam com legislações estaduais. Qual é a fonte dos dados para garantir precisão?

3. Arquivos não relacionados
O PR inclui package-lock.json e vite.config.js com alterações que não fazem parte do escopo.

Sugestão: Se quiser avançar, abra primeiro uma issue para discutir o design do novo endpoint, a fonte dos dados e como manter os feriados estaduais atualizados. Assim podemos planejar a funcionalidade completa antes da implementação.

@lucianopf
Copy link
Copy Markdown
Member

Olá @mtsmgn0! A adição de feriados estaduais é uma boa ideia, mas a PR tem um problema crítico.

Bloqueador: remoção do campo weekday

O PR #755 adicionou o campo weekday aos feriados — esse campo está em produção e usuários já podem depender dele. Sua PR remove esse campo de todos os feriados:

-    weekday: getWeekdayName(easterDate),

Isso quebraria sistemas em produção que usam response[i].weekday. Nunca remova campos existentes das respostas — o projeto tem zero tolerância para quebra de compatibilidade retroativa.

Como corrigir

  1. Faça rebase no main atual (que já tem o campo weekday do PR feat: Adicionar campo weekday no endpoint de feriados #755)
  2. Não remova o campo weekday dos feriados existentes
  3. Adicione weekday nos novos feriados estaduais também (ou não adicione — mas não remova dos existentes)

Outras observações

  • Os testes no arquivo tests/feriados/getHolidays.test.js testam a função de serviço diretamente, o que está ok para lógica interna. Mas lembre-se de também adicionar um teste E2E para o endpoint HTTP quando criar o endpoint para feriados estaduais.
  • Seria necessário criar um novo endpoint (/api/feriados/v1/{ano}/{uf}) para expor os feriados estaduais via HTTP.
  • O arquivo vite.config.js foi alterado desnecessariamente — por favor, reverta.

Corrija esses pontos e aí posso fazer uma revisão completa!

@lucianopf lucianopf self-requested a review April 15, 2026 01:54
@lucianopf lucianopf dismissed their stale review April 15, 2026 01:56

Review descartado — feedback já coberto em comentários anteriores.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants