Skip to content

Adicionar testes unitários para fluxos críticos no backend #9

Description

@lumamontes

Contexto

O backend possui 18 arquivos .spec.ts mas todos contêm apenas o teste padrão do NestJS (should be defined). Nenhum comportamento real está testado, o que é um risco para a estabilidade da aplicação.

Objetivo

Implementar testes unitários com Jest para os serviços e DTOs mais críticos do backend.

Prioridades de teste

Alta prioridade

  • ReviewsService — criação de review com rating em transação
  • TracksService — lógica de transação para reordenação de faixas
  • StorageService — validação de MIME type, limite de tamanho (5MB), geração de chave UUID
  • RatingService — criação e atualização de rating (escala 0.5-5)

Média prioridade

  • DTOs — validação com class-validator (CreateReviewDto, CreateRatingDto, UpdateProfileDto, UpdateTracksOrderDto)
  • UsersService — busca de perfil, follow/unfollow, busca de usuários
  • AlbunsService — busca e persistência de álbuns com criação automática de artistas/tracks

Baixa prioridade

  • SpotifyService — integração com API do Spotify (mockar HTTP calls)
  • AvatarsService — upload e validação de avatares

Critérios de aceitação

  • Pelo menos os 4 serviços de alta prioridade com testes reais
  • DTOs com testes de validação (campos obrigatórios, tipos, limites)
  • Mocks adequados para DrizzleService e dependências externas
  • Testes passam com pnpm test no workspace apps/api

Dicas técnicas

  • Backend: apps/api/src/
  • Jest já configurado no projeto
  • DrizzleService é o ponto de acesso ao banco — deve ser mockado nos testes unitários
  • Transações usam db.transaction() do Drizzle

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions