1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00

Add YT unit test to cover iTunes compatibility

https://podba.se/validate/?url=https://podsync.net/gNNlHz9li
This commit is contained in:
mxpv
2018-07-22 13:19:53 -07:00
parent b461229784
commit 5254b91a78

View File

@@ -7,6 +7,7 @@ import (
"github.com/mxpv/podsync/pkg/api" "github.com/mxpv/podsync/pkg/api"
"github.com/mxpv/podsync/pkg/model" "github.com/mxpv/podsync/pkg/model"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/stretchr/testify/assert"
) )
var ytKey = os.Getenv("YOUTUBE_TEST_API_KEY") var ytKey = os.Getenv("YOUTUBE_TEST_API_KEY")
@@ -36,23 +37,48 @@ func TestBuildYTFeed(t *testing.T) {
builder, err := NewYouTubeBuilder(ytKey) builder, err := NewYouTubeBuilder(ytKey)
require.NoError(t, err) require.NoError(t, err)
podcast, err := builder.Build(&model.Feed{ feeds := []*model.Feed{
Provider: api.ProviderYoutube, {
LinkType: api.LinkTypeChannel, Provider: api.ProviderYoutube,
ItemID: "UCupvZG-5ko_eiXAupbDfxWw", LinkType: api.LinkTypeChannel,
PageSize: maxYoutubeResults, ItemID: "UCupvZG-5ko_eiXAupbDfxWw",
}) PageSize: maxYoutubeResults,
},
{
Provider: api.ProviderYoutube,
LinkType: api.LinkTypePlaylist,
ItemID: "PLfVk3KMh3VX1yJShGRsJmsqAjvMIviJYQ",
PageSize: maxYoutubeResults,
},
}
require.NoError(t, err) for _, feed := range feeds {
t.Run(feed.ItemID, func(t *testing.T) {
podcast, err := builder.Build(feed)
require.Equal(t, "CNN", podcast.Title) require.NoError(t, err)
require.NotEmpty(t, podcast.Description)
require.Equal(t, 50, len(podcast.Items)) assert.NotEmpty(t, podcast.Title)
assert.NotEmpty(t, podcast.IAuthor)
assert.NotEmpty(t, podcast.Description)
for _, item := range podcast.Items { require.NotNil(t, podcast.ISummary)
require.NotEmpty(t, item.Title) assert.NotEmpty(t, podcast.ISummary.Text)
require.NotEmpty(t, item.Link)
require.NotEmpty(t, item.IDuration) assert.Equal(t, 50, len(podcast.Items))
for _, item := range podcast.Items {
assert.NotEmpty(t, item.Title)
assert.NotEmpty(t, item.Link)
assert.NotEmpty(t, item.IDuration)
require.NotNil(t, item.ISummary)
assert.NotEmpty(t, item.ISummary.Text)
assert.NotEmpty(t, item.Title)
assert.NotEmpty(t, item.IAuthor)
assert.NotEmpty(t, item.Description)
}
})
} }
} }