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

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