Skip to content

Implementar estados assíncronos, tratamento de erros, acessibilidade e testes críticos #31

Description

@viviangiulia

Contexto

Uma interface integrada não pode assumir que toda operação será instantânea ou bem-sucedida. O frontend precisa comunicar carregamento, falhas, ausência de dados e resultados das ações.

Além disso, os fluxos críticos devem possuir acessibilidade básica e proteção mínima contra regressões, sem introduzir uma infraestrutura de testes desproporcional ao estágio atual do projeto.

Objetivo

Tornar os principais fluxos do frontend robustos para uso real e garantir um nível adequado de qualidade, acessibilidade e cobertura automatizada dos comportamentos críticos.

Escopo

  • Implementar estados de loading nos fluxos assíncronos.
  • Implementar estados vazios.
  • Implementar apresentação de erros da API.
  • Implementar feedback de sucesso quando relevante.
  • Garantir navegação por teclado nas interações críticas.
  • Garantir labels e nomes acessíveis nos campos e controles.
  • Verificar gerenciamento de foco em dialogs e drawers.
  • Verificar fechamento por teclado quando aplicável.
  • Definir uma estratégia mínima de testes adequada ao projeto.
  • Testar os fluxos críticos, priorizando:
    • criação de orçamento;
    • entrada de dados;
    • geração de orçamento;
    • abertura do resultado;
    • consulta de orçamento salvo;
    • detalhamento de composição.

Fora de escopo

  • Cobertura de 100%.
  • Testes automatizados para cada componente puramente visual.
  • Infraestrutura E2E excessivamente complexa sem retorno concreto.
  • Certificação formal de acessibilidade.
  • Testes dependentes da implementação interna das classes Python.

Critérios de aceite

  • Operações assíncronas críticas apresentam estado de loading.
  • Erros são apresentados em linguagem compreensível.
  • Estados vazios orientam o usuário sobre o próximo passo.
  • Dialogs e drawers críticos podem ser operados por teclado.
  • Campos possuem labels acessíveis.
  • O foco é gerenciado adequadamente nas principais interações modais.
  • Os fluxos críticos selecionados possuem testes automatizados.
  • Os testes não dependem da implementação interna das classes Python ou dos modelos ORM.

Dependências

  • Fluxos de frontend correspondentes.
  • Integrações com a API, para testes dos estados assíncronos reais.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions