Files
pipu-music/services/api/internal/uploads/sidecar_test.go
T
mrleo1nidandClaude Sonnet 5.5 5d0decbb2a
ci / module boundaries / boundaries (push) Successful in 7s
ci / api / api (push) Successful in 33s
ci / db / db (push) Successful in 1m47s
Use the primary artist for upload destination folders
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 23:14:48 +03:00

33 lines
1.1 KiB
Go

package uploads
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestSidecarDirs(t *testing.T) {
tpl := "{albumartist}/{year} - {album}/{disc:1-}{track:02} - {title}.{ext}"
album, artist := sidecarDirs(tpl, "Artist/2020 - Album/01 - Song.flac")
require.Equal(t, "Artist/2020 - Album", album)
require.Equal(t, "Artist", artist)
album, artist = sidecarDirs("{albumartist}/{album}/{disc:1}/{track:02} - {title}.{ext}", "A/B/1/01 - S.flac")
require.Equal(t, "A/B", album)
require.Equal(t, "A", artist)
album, artist = sidecarDirs("{albumartist} - {album}/{title}.{ext}", "A - B/S.flac")
require.Equal(t, "A - B", album)
require.Empty(t, artist)
album, artist = sidecarDirs("{albumartist} - {title}.{ext}", "A - S.flac")
require.Empty(t, album)
require.Empty(t, artist)
}
func TestPrimaryArtistKeepsFeaturingInFirstArtistFolder(t *testing.T) {
require.Equal(t, "BOULEVARD DEPO", Meta{AlbumArtist: "BOULEVARD DEPO;JEEMBO"}.PrimaryArtist())
require.Equal(t, "BOULEVARD DEPO", Meta{Artist: "BOULEVARD DEPO feat. SP4K"}.PrimaryArtist())
require.Equal(t, "Simon & Garfunkel", Meta{AlbumArtist: "Simon & Garfunkel"}.Fields().AlbumArtist)
}