Skip to content

fix(lookup): corrige ordenação de campos numéricos e data#2785

Open
guilhermeverissimo14 wants to merge 1 commit intopo-ui:masterfrom
guilhermeverissimo14:lookup/2674
Open

fix(lookup): corrige ordenação de campos numéricos e data#2785
guilhermeverissimo14 wants to merge 1 commit intopo-ui:masterfrom
guilhermeverissimo14:lookup/2674

Conversation

@guilhermeverissimo14
Copy link
Copy Markdown

fix(lookup): corrige ordenação de campos numéricos e data

A pesquisa em campos lookup com valores numéricos ou data não estava ordenando corretamente. Ao tentar ordenar por valores numéricos como "mass" no exemplo do portal, a ordenação ficava incorreta tanto ascendente quanto descendente.

A função sortValues foi ajustada para detectar strings numéricas e convertê-las para números antes da comparação, garantindo ordenação numérica ao invés de alfabética. Foram adicionados testes para validar a conversão de strings numéricas, strings vazias, decimais e números negativos.

Fixes #2674

po-lookup

#2674


PR Checklist [Revisor]

  • Padrão de Commit (Coeso, de acordo com o que está sendo realizado)
  • Código (Boas práticas, nome de variavéis/métodos, etc.)
  • Testes unitários (Cobre a situação implementada e coverage está mantido)
  • Documentação (Clara, objetiva e com exemplos caso necessário)
  • Samples (A implementação possui exemplo no Labs/Caso de uso)
  • Rodado em navegadores suportados (Chrome, FireFox, Edge)

Qual o comportamento atual?

Na pesquisa de um campo lookup, quando o valor é numérico ou data, a
ordenação não fica correta. Ao tentar ordenar pela coluna "mass" no
exemplo do portal (Star Wars films), a ordenação fica incorreta tanto
ascendente quanto descendente.

Isso ocorre porque a função sortValues estava fazendo comparação
alfabética de strings, onde "100" vem antes de "20" alfabeticamente,
mas numericamente deveria ser o contrário.

Qual o novo comportamento?

A função sortValues foi corrigida para detectar automaticamente strings
que representam valores numéricos puros e convertê-las para números
antes da comparação. Isso garante ordenação numérica correta.

Tratamentos adicionados:

  • Strings numéricas inteiras: "123", "456"
  • Números decimais: "10.5", "3.14"
  • Números negativos: "-10", "-5.5"
  • Strings vazias ou com apenas espaços não são convertidas
  • Strings alfanuméricas (ex: "123abc") não são convertidas

Foram adicionados 9 novos testes unitários cobrindo todos os cenários.

Simulação

Esta correção pode ser validada no portal PO-UI:

  1. Acessar exemplo "PO Lookup - Star Wars films"
  2. Clicar para ordenar pela coluna "mass" (ascendente)
  3. Verificar que valores aparecem em ordem numérica correta: 15, 17, 20, 75, 77, 78, 80, 84, 110, 136
  4. Clicar novamente para ordenar descendente
  5. Verificar ordem reversa correta

A pesquisa em campos lookup com valores numéricos ou data não estava
ordenando corretamente. Ao tentar ordenar por valores numéricos como
"mass" no exemplo do portal, a ordenação ficava incorreta tanto
ascendente quanto descendente.

A função sortValues foi ajustada para detectar strings numéricas e
convertê-las para números antes da comparação, garantindo ordenação
numérica ao invés de alfabética. Foram adicionados testes para validar
a conversão de strings numéricas, strings vazias, decimais e números
negativos.

Fixes po-ui#2674
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.

Lookup - ordenação do campo pesquisa

1 participant