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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions