Skip to content

Feat: listar buscar tipos vegetação Api.v2 - #507

Open
JosueModesto wants to merge 3 commits into
developmentfrom
489-listar-buscar-tipos-vegetação

Hidden character warning

The head ref may contain hidden characters: "489-listar-buscar-tipos-vegeta\u00e7\u00e3o"
Open

Feat: listar buscar tipos vegetação Api.v2#507
JosueModesto wants to merge 3 commits into
developmentfrom
489-listar-buscar-tipos-vegetação

Conversation

@JosueModesto

Copy link
Copy Markdown
Contributor

Close #489

O que foi feito

Foi implementado o módulo de leitura de tipos de vegetação na API v2, preservando o comportamento legado da rota antiga.

Alterações principais

  • Criação do módulo de Vegetação em v2 com endpoints de listagem e busca por ID:
  • GET /api/v2/vegetacoes
  • GET /api/v2/vegetacoes/:vegetacaoId
  • Suporte a filtro por nome com busca parcial e sem diferenciação de maiúsculas/minúsculas.
  • Ordenação configurável por:
    • id ou nome
    • direção asc ou desc
  • Ordenação padrão da listagem em id decrescente, conforme requisito.
  • Validação para vegetacaoId inválido com retorno 400.
  • Retorno 404 quando o registro não existe.
  • Manutenção do legado /api/vegetacoes sem alterações.

Cobertura de testes

  • Testes de listagem com filtro
  • Testes de ordenação padrão
  • Testes de ordenação customizada pela UI
  • Teste de busca por registro existente
  • Teste de busca por registro inexistente
  • Teste de vegetacaoId inválido

try {
const response = await agent.get('/api/v2/vegetacoes').expect(200)
const expected = [...inserted].sort((a, b) => b.id - a.id)
expect(response.body).toEqual(expected)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As asserções da listagem sem filtro comparam o corpo inteiro só com as linhas inseridas neste teste. O setup de integração trunca apenas paises e estados, então qualquer residual em vegetacoes (teste paralelo ou falha anterior) quebra o teste de ordem padrão e o de order customizada. O padrão de países filtra por prefixo único e compara só o recorte.

if (!order) return undefined

const [column, direction] = order.split(':')
const normalizedColumn = column === 'nome' || column === 'id' ? column : 'id'

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

parseOrder normaliza coluna/direção inválidas em silêncio para id/desc. Valores como order=nome:ASC ou order=foo:bar não devolvem 400; a direção em maiúsculas cai no default desc. Se a UI enviar o formato da listagem legado, a ordem pode ficar invertida sem erro explícito.

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.

Listar e buscar tipos de vegetação

2 participants