add tests

This commit is contained in:
mmacia committed 2026-05-07 20:54:47 +00:00
1 parent ea9a25f5b4
commit 08cddbe947
4 files changed
+112 -1

No files matched your search

+7 -1
View File
@@ -15,7 +15,13 @@ defmodule FeedReader.TestSupport.ExternalFormat do
def handler, do: FeedReader.TestSupport.ExternalFormatHandler
@impl true
def new_parser_state(event_sink, opts), do: %{event_sink: event_sink, opts: opts}
def new_parser_state(event_sink, opts) do
if notify = Keyword.get(opts, :notify_parser) do
send(notify, {:parser_pid, self()})
end
%{event_sink: event_sink, opts: opts}
end
@impl true
def normalize_feed(_state, _opts), do: %Feed{title: "External", type: :rss}
+16
View File
@@ -2,6 +2,22 @@ defmodule FeedReader.TestSupport.ExternalFormatHandler do
@moduledoc false
@behaviour Saxy.Handler
alias FeedReader.Feed
@impl true
def handle_event(:start_document, _data, %{opts: opts} = state) do
if Keyword.get(opts, :emit_event), do: emit_event(state)
{:ok, state}
end
def handle_event(:end_document, _data, %{opts: opts} = state) do
if Keyword.get(opts, :emit_event), do: emit_event(state)
{:ok, state}
end
def handle_event(_event_type, _data, state), do: {:ok, state}
defp emit_event(state), do: state.event_sink.({:feed, %Feed{title: "External", type: :rss}})
end
+1
View File
@@ -13,6 +13,7 @@ defmodule FeedReader.TestSupport.ParserHaltFormat do
@impl true
def new_parser_state(_event_sink, opts) do
if Keyword.get(opts, :normal_exit), do: exit(:normal)
if Keyword.get(opts, :abnormal_exit), do: exit(:parser_crashed)
nil
end