File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed
Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ defmodule Radiator.Outline.NodeRepository do
6969 def list_nodes_by_node_container ( outline_node_container_id ) do
7070 Node
7171 |> where ( [ p ] , p . outline_node_container_id == ^ outline_node_container_id )
72+ |> preload ( :urls )
7273 |> Repo . all ( )
7374 |> Enum . group_by ( & & 1 . parent_id )
7475 |> Enum . map ( fn { _parent_id , children } -> Radiator.Outline . order_sibling_nodes ( children ) end )
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ defmodule Radiator.Outline.NodeRepositoryTest do
44 alias Radiator.Outline.Node
55 alias Radiator.Outline.NodeRepository
66 alias Radiator.PodcastFixtures
7+ alias Radiator.ResourcesFixtures
78
89 import Radiator.OutlineFixtures
910 import Ecto.Query , warn: false
@@ -78,6 +79,28 @@ defmodule Radiator.Outline.NodeRepositoryTest do
7879 node2
7980 ]
8081 end
82+
83+ describe "list_nodes_by_episode/1" do
84+ test "returns only nodes of this episode" do
85+ node1 = node_fixture ( )
86+ node2 = node_fixture ( )
87+
88+ assert NodeRepository . list_nodes_by_episode ( node1 . episode_id ) |> Enum . map ( & & 1 . uuid ) == [
89+ node1 . uuid
90+ ]
91+
92+ assert NodeRepository . list_nodes_by_episode ( node2 . episode_id ) |> Enum . map ( & & 1 . uuid ) == [
93+ node2 . uuid
94+ ]
95+ end
96+
97+ test "preloads optional associated URLs" do
98+ node = node_fixture ( )
99+ url = ResourcesFixtures . url_fixture ( node_id: node . uuid )
100+ [ loaded_node ] = NodeRepository . list_nodes_by_episode ( node . episode_id )
101+ assert loaded_node . uuid == node . uuid
102+ assert loaded_node . urls == [ url ]
103+ end
81104 end
82105
83106 describe "delete_node/1" do
You can’t perform that action at this time.
0 commit comments