ci / module boundaries / boundaries (push) Successful in 10s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m30s
ci / api / api (push) Successful in 58s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m1s
ci / db / db (push) Failing after 25s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 1m36s
ci / ts / ts (packages + web) (push) Failing after 6m3s
33 lines
1.1 KiB
Go
33 lines
1.1 KiB
Go
//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)
|
|
}
|