Busca de Músicas — Tarefas
Gerado pelo Writer (Reversa) em 2026-05-11
Pré-requisitos
- [ ] Tabela
musica_busca(FTS5) populada e sincronizada - [ ]
MusicaConfigurationretornando valores corretos por tipo de dispositivo
Tarefas
- [ ] T-01 — Implementar
getDetalhesTermoBuscacom 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.ts—BuscaStrategies - 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+1comhasNextPage - Origem:
src/repository/musicas/MusicasRepository.ts - Critério de pronto: última página retorna
false; páginas com mais dados retornamtrue - 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
findAllBycom banco SQLite de teste (seed mínimo) - [ ] TT-03 — Teste de paginação: 51 registros com pageSize=50 → hasNextPage=true