aboutsummaryrefslogtreecommitdiff
path: root/main_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'main_test.go')
-rw-r--r--main_test.go60
1 files changed, 60 insertions, 0 deletions
diff --git a/main_test.go b/main_test.go
index 6c5c172..82dc506 100644
--- a/main_test.go
+++ b/main_test.go
@@ -166,6 +166,25 @@ func TestUpdatingFeed(t *testing.T) {
assertGolden(t, actual, golden)
}
+func TestPopulateFeed(t *testing.T) {
+ var page []byte
+
+ feed := &feeds.Feed{
+ Link: &feeds.Link{Href: "https://smotrim.ru/brand/57083"},
+ }
+
+ page = helperLoadBytes(t, "smotrim.57083")
+ page = cleanText(page)
+
+ if err := populateFeed(feed, page); err != nil {
+ t.Fatal(err)
+ }
+
+ actual := createFeed(feed)
+ golden := filepath.Join("testdata", t.Name()+".golden")
+ assertGolden(t, actual, golden)
+}
+
func TestMissingEpisode(t *testing.T) {
server := helperMockServer(t)
defer helperCleanupServer(t)
@@ -245,6 +264,47 @@ func BenchmarkServedFeed(b *testing.B) {
}
}
+func TestGetFeed(t *testing.T) {
+ radiorus := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ page := helperLoadBytes(t, "episodes")
+ _, _ = w.Write(page)
+ }))
+ defer radiorus.Close()
+
+ smotrim := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ page := helperLoadBytes(t, "smotrim.57083")
+ _, _ = w.Write(page)
+ }))
+ defer smotrim.Close()
+
+ redir := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ http.Redirect(w, r, smotrim.URL, 301)
+ }))
+ defer redir.Close()
+
+ tests := map[string]struct {
+ url string
+ want string
+ desc bool
+ }{
+ "radiorus": {radiorus.URL, radiorus.URL, false},
+ "smotrim": {redir.URL, smotrim.URL, true},
+ }
+
+ for name, tc := range tests {
+ t.Run(name, func(t *testing.T) {
+ feed := getFeed(tc.url)
+ if tc.want != feed.Link.Href {
+ t.Fatalf("\nwant %s, got %s", tc.want, feed.Link.Href)
+ }
+ ne := feed.Description != ""
+ if ne != tc.desc {
+ t.Fatalf("\nwant %v, got %v", tc.desc, ne)
+ }
+ })
+ }
+}
+
func helperMockServer(t testing.TB) *httptest.Server {
t.Helper()