package feed_test import ( "testing" "time" "git.32bit.cafe/yequari/webweav.ing/feed" ) func TestArticleParse(t *testing.T) { testDate, err := time.Parse("2006-Jan-02", "2004-May-14") if err != nil { t.Errorf("creating test date failed: %s", err) } var tests = []struct { name string input string want_time *time.Time want_article string }{ { "article stripped out of basic HTML", "
hello world
", nil, "
hello world
", }, { "article and time stripped out of basic HTML", "
hello world
", &testDate, "
hello world
", }, } for _, tt := range tests { t.Run(tt.name, func (t *testing.T) { article, articleTime, err := feed.ParseArticle(tt.input) if err != nil { t.Errorf("error: %s", err) } if article != tt.want_article { t.Errorf("got %s, want %s", article, tt.want_article) } if tt.want_time != nil && !articleTime.Equal(*tt.want_time) { t.Errorf("got %s, want %s", articleTime, *tt.want_time) } }) } } func TestParseFeedItem(t *testing.T) { testDate, err := time.Parse("2006-Jan-02", "2004-May-14") if err != nil { t.Errorf("creating test date failed: %s", err) } var tests = []struct { name string input string want_time *time.Time want_article string }{ { "article and time stripped out of basic HTML", "
hello world
", &testDate, "
hello world
", }, } for _, tt := range tests { t.Run(tt.name, func (t *testing.T) { item := feed.FeedItem{} err := item.ParseContent(tt.input) if err != nil { t.Errorf("error: %s", err) } if item.RawText != tt.want_article { t.Errorf("got %s, want %s", item.RawText, tt.want_article) } if tt.want_time != nil && !item.PubTime.Equal(*tt.want_time) { t.Errorf("got %s, want %s", item.PubTime, *tt.want_time) } }) } }