Skip to content

Correção da Validação da Faixa Etária na Série (Issue #1095)#1107

Open
Edilson-r-jr wants to merge 5 commits intoportabilis:2.10from
Edilson-r-jr:2.10
Open

Correção da Validação da Faixa Etária na Série (Issue #1095)#1107
Edilson-r-jr wants to merge 5 commits intoportabilis:2.10from
Edilson-r-jr:2.10

Conversation

@Edilson-r-jr
Copy link
Copy Markdown
Contributor

#1095

DESCRIÇÃO

Este Pull Request implementa a correção da Issue #1095, que relatava que os campos de faixa etária no cadastro/edição de Série (idade_inicial, idade_final, idade_ideal) permitiam valores negativos, resultando em dados inconsistentes no sistema.

Para resolver isso, foram implementadas as seguintes melhorias:

  • Criação do validador GradeAgeGroupValidator, responsável por garantir que os valores de idade sejam maiores ou iguais a zero.

  • Integração desse validador nos métodos Novo() e Editar() do arquivo educar_serie_cad.php, impedindo o salvamento quando idades negativas forem informadas.

  • Exibição da mensagem clara ao usuário:
    "Os campos de idade devem ser maiores ou iguais a zero."

  • Adição de testes unitários seguindo o ciclo TDD, cobrindo os seguintes cenários:

    1. Idade inicial negativa
    2. Idade final negativa
    3. Idade ideal negativa
    4. Todas as idades iguais a zero
    5. Todas as idades positivas
    6. Edição com idade negativa

Com isso, o sistema passa a impedir o cadastro e a edição de séries com faixas etárias inválidas, garantindo maior consistência dos dados e prevenindo erros em matrículas, validações e relatórios.


AMBIENTE

Este Pull Request foi desenvolvido e testado no seguinte ambiente:

  • Plataforma utilizada: Docker (ambiente oficial do i-Educar)
  • Sistema operacional: Ubuntu 22.04 LTS
  • Navegador utilizado para testes manuais: Google Chrome 120.0.x

@sonarqubecloud
Copy link
Copy Markdown


class GradeAgeGroupValidator
{
public static function faixaEtariaEhValida($idadeInicial, $idadeIdeal, $idadeFinal): bool
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Pode escrever o código apenas em inglês. Estamos procurando evitar o português nos novos métodos.


foreach ($idades as $idade) {
if ($idade !== null && $idade !== '' && $idade < 0) {
return false;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Esses campos são opcionais e não necessariamente serão utilizados. Neste caso você está adicionando um bloqueio indevido ao cadastro de série. A validação tem que ser condicional ao uso do campo.

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