diff --git a/src/eater/feed.gleam b/src/eater/feed.gleam index bfba66d..e74881f 100644 --- a/src/eater/feed.gleam +++ b/src/eater/feed.gleam @@ -34,12 +34,12 @@ pub fn decoder() -> decode.Decoder(Feed) { decode.one_of(atom_decoder(), [rss_decoder()]) } -fn rss_decoder() { +pub fn rss_decoder() { use channel <- decode.field("channel", rss_channel_decoder()) decode.success(RssFeed(channel:)) } -fn atom_decoder() { +pub fn atom_decoder() { use title <- decode.subfield(["title", "$text"], decode.string) use link <- link_decoder() use updated <- published_or_updated() diff --git a/test/eater_test.gleam b/test/eater_test.gleam index ca8d07e..296fcdb 100644 --- a/test/eater_test.gleam +++ b/test/eater_test.gleam @@ -11,33 +11,38 @@ pub fn rss_test() { let assert Ok(feed) = simplifile.read("./test/data/strawmelonfeed.xml") as "failed to read feed" - let assert Ok(_) = xml.parse(feed, feed.decoder()) as "failed to parse feed" + let assert Ok(_) = xml.parse(feed, feed.rss_decoder()) + as "failed to parse feed" } pub fn multiple_link_items_test() { let assert Ok(feed) = simplifile.read("./test/data/hayleigh.xml") as "failed to read feed" - let assert Ok(_) = xml.parse(feed, feed.decoder()) as "failed to parse feed" + let assert Ok(_) = xml.parse(feed, feed.rss_decoder()) + as "failed to parse feed" } pub fn link_item_without_text_test() { let assert Ok(feed) = simplifile.read("./test/data/hayleigh-modified.xml") as "failed to read feed" - let assert Ok(_) = xml.parse(feed, feed.decoder()) as "failed to parse feed" + let assert Ok(_) = xml.parse(feed, feed.rss_decoder()) + as "failed to parse feed" } pub fn atom_test() { let assert Ok(feed) = simplifile.read("./test/data/lpil-atom.xml") as "failed to read feed" - let assert Ok(_) = xml.parse(feed, feed.decoder()) as "failed to parse feed" + let assert Ok(_) = xml.parse(feed, feed.atom_decoder()) + as "failed to parse feed" } pub fn youtube_atom_test() { let assert Ok(feed) = simplifile.read("./test/data/youtube.xml") as "failed to read feed" - let assert Ok(_) = xml.parse(feed, feed.decoder()) as "failed to parse feed" + let assert Ok(_) = xml.parse(feed, feed.atom_decoder()) + as "failed to parse feed" }