Skip to content

Busca de Músicas — Tarefas

Gerado pelo Writer (Reversa) em 2026-05-11

Pré-requisitos

  • [ ] Tabela musica_busca (FTS5) populada e sincronizada
  • [ ] MusicaConfiguration retornando valores corretos por tipo de dispositivo

Tarefas

  • [ ] T-01 — Implementar getDetalhesTermoBusca com os 3 branches (vazio, índice, texto)
  • Origem: src/repository/musicas/MusicasRepository.ts
  • Critério de pronto: testes unitários passam para os 3 tipos
  • Confiança: 🟢

  • [ ] T-02 — Implementar normalização FTS5 (NFKD → uppercase → remove especiais → * por token)

  • Origem: src/repository/musicas/MusicasRepository.ts
  • Critério de pronto: "Avé María" → "ave* maria*"; "foi" → "foi*"
  • Confiança: 🟢

  • [ ] T-03 — Implementar as 3 estratégias SQL em findAllBy

  • Origem: src/repository/musicas/MusicasRepository.tsBuscaStrategies
  • Critério de pronto: cada estratégia produz SQL correto verificado em teste de integração
  • Confiança: 🟢

  • [ ] T-04 — Implementar filtros condicionais (livro, rótulo) nas 3 estratégias

  • Origem: src/repository/musicas/MusicasRepository.ts — cláusulas WHERE condicionais
  • Critério de pronto: filtro por livro reduz resultados corretamente; sem filtro retorna tudo
  • Confiança: 🟢

  • [ ] T-05 — Implementar paginação LIMIT n+1 com hasNextPage

  • Origem: src/repository/musicas/MusicasRepository.ts
  • Critério de pronto: última página retorna false; páginas com mais dados retornam true
  • Confiança: 🟢

Tarefas de Teste

  • [ ] TT-01 — Teste unitário de getDetalhesTermoBusca (3 tipos + edge cases: "!!", "a", "23a")
  • [ ] TT-02 — Teste de integração de findAllBy com banco SQLite de teste (seed mínimo)
  • [ ] TT-03 — Teste de paginação: 51 registros com pageSize=50 → hasNextPage=true