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
69
69
def list_nodes_by_node_container ( outline_node_container_id ) do
70
70
Node
71
71
|> where ( [ p ] , p . outline_node_container_id == ^ outline_node_container_id )
72
+ |> preload ( :urls )
72
73
|> Repo . all ( )
73
74
|> Enum . group_by ( & & 1 . parent_id )
74
75
|> 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
4
4
alias Radiator.Outline.Node
5
5
alias Radiator.Outline.NodeRepository
6
6
alias Radiator.PodcastFixtures
7
+ alias Radiator.ResourcesFixtures
7
8
8
9
import Radiator.OutlineFixtures
9
10
import Ecto.Query , warn: false
@@ -78,6 +79,28 @@ defmodule Radiator.Outline.NodeRepositoryTest do
78
79
node2
79
80
]
80
81
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
81
104
end
82
105
83
106
describe "delete_node/1" do
You can’t perform that action at this time.
0 commit comments