//go:build integration package musicbrainz import ( "context" "github.com/stretchr/testify/require" "os" "testing" "time" ) // Explicitly opt in: CI does not depend on public metadata services being online. func TestLiveMetadataProviders(t *testing.T) { if os.Getenv("PIPU_LIVE_METADATA_TEST") != "1" { t.Skip("set PIPU_LIVE_METADATA_TEST=1 to query public providers") } ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() c := New(memoryCache{}, "PipuMusic/test (https://gitea.hsrv.site/mrleo1nid/pipu-music)") releases, err := c.Search(ctx, Query{ReleaseID: "99b09d02-9cc9-3fed-8431-f162165a9371"}) require.NoError(t, err) require.Len(t, releases, 1) require.NotEmpty(t, releases[0].Title) require.NotEmpty(t, releases[0].Artist) require.NotEmpty(t, releases[0].Tracks) cover, err := c.Cover(ctx, releases[0]) require.NoError(t, err) require.NotEmpty(t, cover.Data) require.Contains(t, cover.MIME, "image/") t.Logf("release=%s tracks=%d cover_bytes=%d exact=%v", releases[0].ID, len(releases[0].Tracks), len(cover.Data), cover.Exact) }