Files
SpotiFLAC-Mobile/go_backend/lyrics_apple_test.go
T

92 lines
2.0 KiB
Go

package gobackend
import "testing"
func TestSelectBestAppleMusicSearchResultRejectsWrongSongWithMatchingArtistAndDuration(t *testing.T) {
results := []appleMusicSearchResult{
{
ID: "azul",
SongName: "Azul",
ArtistName: "Guru Randhawa",
Duration: 186000,
},
}
best := selectBestAppleMusicSearchResult(
results,
"SIX",
"Guru Randhawa, Kiran Bajwa, Gurjit Gill & Lavish Dhiman",
186,
)
if best != nil {
t.Fatalf("expected the unrelated Azul result to be rejected, got %#v", best)
}
}
func TestSelectBestAppleMusicSearchResultRequiresAvailableIdentitySignals(t *testing.T) {
tests := []struct {
name string
result appleMusicSearchResult
}{
{
name: "wrong artist",
result: appleMusicSearchResult{
ID: "wrong-artist",
SongName: "SIX",
ArtistName: "Different Artist",
Duration: 186000,
},
},
{
name: "wrong duration",
result: appleMusicSearchResult{
ID: "wrong-duration",
SongName: "SIX",
ArtistName: "Guru Randhawa",
Duration: 240000,
},
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
best := selectBestAppleMusicSearchResult(
[]appleMusicSearchResult{test.result},
"SIX",
"Guru Randhawa",
186,
)
if best != nil {
t.Fatalf("expected mismatched result to be rejected, got %#v", best)
}
})
}
}
func TestSelectBestAppleMusicSearchResultAcceptsCompatibleMetadata(t *testing.T) {
results := []appleMusicSearchResult{
{
ID: "azul",
SongName: "Azul",
ArtistName: "Guru Randhawa",
Duration: 186000,
},
{
ID: "six",
SongName: "SIX (feat. Kiran Bajwa)",
ArtistName: "Guru Randhawa & Kiran Bajwa",
Duration: 187000,
},
}
best := selectBestAppleMusicSearchResult(
results,
"SIX",
"Guru Randhawa, Kiran Bajwa, Gurjit Gill & Lavish Dhiman",
186,
)
if best == nil || best.ID != "six" {
t.Fatalf("expected the compatible SIX result, got %#v", best)
}
}