mirror of
https://github.com/ash-project/ash_postgres.git
synced 2024-09-19 21:13:19 +12:00
40 lines
1.2 KiB
Elixir
40 lines
1.2 KiB
Elixir
defmodule AshPostgres.Test.Support.Relationships.FilterChileRelationshipByParentRelationshipTest do
|
|
use AshPostgres.RepoCase, async: false
|
|
alias AshPostgres.Test.{Comment, Post}
|
|
|
|
require Ash.Query
|
|
|
|
describe "loading ratings of a comment filtered by a post" do
|
|
setup do
|
|
post =
|
|
Post
|
|
|> Ash.Changeset.for_create(:create, %{title: "Post Title", score: 2})
|
|
|> Ash.create!()
|
|
|
|
ratings =
|
|
for i <- [1, 2, 2, 2, 3, 4, 5] do
|
|
%{score: i}
|
|
end
|
|
|
|
comment =
|
|
Comment
|
|
|> Ash.Changeset.for_create(:create, %{title: "Comment Title"})
|
|
|> Ash.Changeset.manage_relationship(:post, post, type: :append_and_remove)
|
|
|> Ash.Changeset.manage_relationship(:ratings, ratings, type: :create)
|
|
|> Ash.create!()
|
|
|
|
[post: post, comment: comment]
|
|
end
|
|
|
|
test "it can load the ratings_with_same_score_as_post relationship", %{
|
|
comment: comment
|
|
} do
|
|
comment = Ash.load!(comment, :ratings_with_same_score_as_post)
|
|
|
|
ratings = comment.ratings_with_same_score_as_post
|
|
|
|
assert Enum.count(ratings) == 3
|
|
assert Enum.all?(ratings, &(&1.score == 2))
|
|
end
|
|
end
|
|
end
|