Files
seanime-docker/seanime-2.9.10/internal/api/anilist/media_tree_test.go
2025-09-20 14:08:38 +01:00

83 lines
1.5 KiB
Go

package anilist
import (
"context"
"github.com/davecgh/go-spew/spew"
"github.com/stretchr/testify/assert"
"seanime/internal/test_utils"
"seanime/internal/util/limiter"
"testing"
)
func TestBaseAnime_FetchMediaTree_BaseAnime(t *testing.T) {
test_utils.InitTestProvider(t, test_utils.Anilist())
anilistClient := TestGetMockAnilistClient()
lim := limiter.NewAnilistLimiter()
completeAnimeCache := NewCompleteAnimeCache()
tests := []struct {
name string
mediaId int
edgeIds []int
}{
{
name: "Bungo Stray Dogs",
mediaId: 103223,
edgeIds: []int{
21311, // BSD1
21679, // BSD2
103223, // BSD3
141249, // BSD4
163263, // BSD5
},
},
{
name: "Re:Zero",
mediaId: 21355,
edgeIds: []int{
21355, // Re:Zero 1
108632, // Re:Zero 2
119661, // Re:Zero 2 Part 2
163134, // Re:Zero 3
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
mediaF, err := anilistClient.CompleteAnimeByID(context.Background(), &tt.mediaId)
if assert.NoError(t, err) {
media := mediaF.GetMedia()
tree := NewCompleteAnimeRelationTree()
err = media.FetchMediaTree(
FetchMediaTreeAll,
anilistClient,
lim,
tree,
completeAnimeCache,
)
if assert.NoError(t, err) {
for _, treeId := range tt.edgeIds {
a, found := tree.Get(treeId)
assert.Truef(t, found, "expected tree to contain %d", treeId)
spew.Dump(a.GetTitleSafe())
}
}
}
})
}
}