ash_postgres/test/multi_domain_calculations_test.exs
Zach Daniel c63c988339 improvement: pluralize table name in extender
chore: get build passing & clean up code

closes #354
2024-07-18 12:53:38 -04:00

60 lines
1.9 KiB
Elixir

defmodule AshPostgres.Test.MultiDomainCalculationsTest do
use AshPostgres.RepoCase, async: false
require Ash.Query
test "total is returned correctly" do
item =
AshPostgres.Test.MultiDomainCalculations.DomainOne.Item
|> Ash.Changeset.for_create(:create, %{})
|> Ash.create!()
other_item =
AshPostgres.Test.MultiDomainCalculations.DomainTwo.OtherItem
|> Ash.Changeset.for_create(:create, %{item_id: item.id})
|> Ash.create!()
for i <- 0..2 do
AshPostgres.Test.MultiDomainCalculations.DomainTwo.SubItem
|> Ash.Changeset.for_create(:create, %{other_item_id: other_item.id, amount: i})
|> Ash.create!()
end
assert [%{total_amount: 3}] =
Ash.read!(AshPostgres.Test.MultiDomainCalculations.DomainOne.Item,
load: [:total_amount]
)
end
test "total using relationship is returned correctly" do
item =
AshPostgres.Test.MultiDomainCalculations.DomainOne.Item
|> Ash.Changeset.for_create(:create, %{key: "key"})
|> Ash.create!()
Ash.read!(AshPostgres.Test.MultiDomainCalculations.DomainOne.Item,
load: [:total_amount_relationship]
)
_relationship_item =
AshPostgres.Test.MultiDomainCalculations.DomainThree.RelationshipItem
|> Ash.Changeset.for_create(:create, %{key: "key", value: 1})
|> Ash.create!()
other_item =
AshPostgres.Test.MultiDomainCalculations.DomainTwo.OtherItem
|> Ash.Changeset.for_create(:create, %{item_id: item.id})
|> Ash.create!()
for i <- 0..2 do
AshPostgres.Test.MultiDomainCalculations.DomainTwo.SubItem
|> Ash.Changeset.for_create(:create, %{other_item_id: other_item.id, amount: i})
|> Ash.create!()
end
assert [%{total_amount_relationship: 3}] =
Ash.read!(AshPostgres.Test.MultiDomainCalculations.DomainOne.Item,
load: [:total_amount_relationship]
)
end
end