diff options
author | 2024-10-18 17:59:18 -0700 | |
---|---|---|
committer | 2024-10-18 18:37:38 -0700 | |
commit | 191f3a7ad7932f64571c0875bf4f76437c45082e (patch) | |
tree | 6e93fe43d30de4bb191aecd615b0b2780f8ebc4c /internal/reader/rss/parser_test.go | |
parent | 366928b35de36b6ac37b8058faf7ea783afef7e6 (diff) | |
download | v2-191f3a7ad7932f64571c0875bf4f76437c45082e.tar.gz v2-191f3a7ad7932f64571c0875bf4f76437c45082e.tar.zst v2-191f3a7ad7932f64571c0875bf4f76437c45082e.zip |
feat(rss): calculate hash based on item title/content for feeds without GUID and link
Diffstat (limited to 'internal/reader/rss/parser_test.go')
-rw-r--r-- | internal/reader/rss/parser_test.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/internal/reader/rss/parser_test.go b/internal/reader/rss/parser_test.go index 83e844cb..2434335a 100644 --- a/internal/reader/rss/parser_test.go +++ b/internal/reader/rss/parser_test.go @@ -336,6 +336,39 @@ func TestParseEntryWithoutLink(t *testing.T) { } } +func TestParseEntryWithoutLinkAndWithoutGUID(t *testing.T) { + data := `<?xml version="1.0" encoding="utf-8"?> + <rss version="2.0"> + <channel> + <link>https://example.org/</link> + <item> + <title>Item 1</title> + </item> + <item> + <title>Item 2</title> + <pubDate>Wed, 02 Oct 2002 08:00:00 GMT</pubDate> + </item> + </channel> + </rss>` + + feed, err := Parse("https://example.org/", bytes.NewReader([]byte(data))) + if err != nil { + t.Fatal(err) + } + + if len(feed.Entries) != 2 { + t.Errorf("Incorrect number of entries, got: %d", len(feed.Entries)) + } + + if feed.Entries[0].Hash != "c5ddfeffb275254140796b8c080f372d65ebb1b0590e238b191f595d5fcd32ca" { + t.Errorf("Incorrect entry hash, got: %s", feed.Entries[0].Hash) + } + + if feed.Entries[1].Hash != "0a937478f9bdbfca2de5cdeeb5ee7b09678a3330fc7cc5b05169a50d4516c9a3" { + t.Errorf("Incorrect entry hash, got: %s", feed.Entries[1].Hash) + } +} + func TestParseEntryWithOnlyGuidPermalink(t *testing.T) { data := `<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> |