Skip to content

Commit 0fd2a9b

Browse files
committed
Add FeedFixtures
1 parent 6de6183 commit 0fd2a9b

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

test/ex_rss/feed_exporter_test.exs

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
defmodule ExRss.FeedExporterTest do
2+
use ExRss.DataCase
3+
4+
import ExRss.AccountsFixtures
5+
import ExRss.FeedFixtures
6+
7+
test "exports feed" do
8+
%{id: user_id} = user_fixture()
9+
feed = feed_fixture(%{user_id: user_id})
10+
11+
assert %{} = feed
12+
assert length(feed.entries) == 6
13+
end
14+
end
+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
defmodule ExRss.FeedFixtures do
2+
alias ExRss.{Entry, Feed, Repo}
3+
4+
@valid_feed_attrs %{title: "some content", url: "https://example.com/some-content"}
5+
6+
def feed_fixture(%{user_id: user_id}) do
7+
%{id: feed_id} =
8+
feed =
9+
Feed.changeset(%Feed{user_id: user_id}, @valid_feed_attrs)
10+
|> Repo.insert!()
11+
12+
{6, nil} = entry_fixtures(%{feed_id: feed_id})
13+
14+
Repo.preload(feed, :entries)
15+
end
16+
17+
defp entry_fixtures(%{feed_id: feed_id}) do
18+
entries =
19+
0..5
20+
|> Enum.map(fn _ ->
21+
unique_integer = System.unique_integer()
22+
23+
%{
24+
link: "http://example.com/#{unique_integer}",
25+
title: "Title #{unique_integer}",
26+
# TODO
27+
# Use random date instead.
28+
updated: "Sun, 21 Dec 2015 16:08:00 +0100",
29+
read: false
30+
}
31+
|> Entry.parse()
32+
|> Map.put(:feed_id, feed_id)
33+
end)
34+
35+
Repo.insert_all(Entry, entries)
36+
end
37+
end

0 commit comments

Comments
 (0)