2020-08-20 09:09:22 +12:00
|
|
|
defmodule AshCsvTest do
|
2020-10-06 18:36:35 +13:00
|
|
|
use ExUnit.Case, async: false
|
|
|
|
alias AshCsv.Test.{Api, Post}
|
2020-10-10 14:14:59 +13:00
|
|
|
require Ash.Query
|
2020-10-06 18:36:35 +13:00
|
|
|
|
|
|
|
setup do
|
|
|
|
on_exit(fn ->
|
|
|
|
File.rm_rf!("test/data_files")
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
|
|
|
|
test "resources can be created" do
|
|
|
|
Post
|
|
|
|
|> Ash.Changeset.new(%{title: "title"})
|
|
|
|
|> Api.create!()
|
|
|
|
|
|
|
|
assert [%{title: "title"}] = Api.read!(Post)
|
|
|
|
end
|
|
|
|
|
|
|
|
test "a resource can be updated" do
|
|
|
|
post =
|
|
|
|
Post
|
|
|
|
|> Ash.Changeset.new(%{title: "title"})
|
|
|
|
|> Api.create!()
|
|
|
|
|
|
|
|
post
|
|
|
|
|> Ash.Changeset.new(%{title: "new_title"})
|
|
|
|
|> Api.update!()
|
|
|
|
|
|
|
|
assert [%{title: "new_title"}] = Api.read!(Post)
|
|
|
|
end
|
|
|
|
|
|
|
|
test "a resource can be deleted" do
|
|
|
|
post =
|
|
|
|
Post
|
|
|
|
|> Ash.Changeset.new(%{title: "title"})
|
|
|
|
|> Api.create!()
|
|
|
|
|
|
|
|
Api.destroy!(post)
|
|
|
|
|
|
|
|
assert [] = Api.read!(Post)
|
|
|
|
end
|
|
|
|
|
|
|
|
test "filters/sorts can be applied" do
|
|
|
|
Post
|
|
|
|
|> Ash.Changeset.new(%{title: "title1"})
|
|
|
|
|> Api.create!()
|
|
|
|
|
|
|
|
Post
|
|
|
|
|> Ash.Changeset.new(%{title: "title2"})
|
|
|
|
|> Api.create!()
|
|
|
|
|
|
|
|
Post
|
|
|
|
|> Ash.Changeset.new(%{title: "title3"})
|
|
|
|
|> Api.create!()
|
|
|
|
|
|
|
|
results =
|
|
|
|
Post
|
2020-10-10 14:14:59 +13:00
|
|
|
|> Ash.Query.filter(title in ["title1", "title2"])
|
2020-10-06 18:36:35 +13:00
|
|
|
|> Ash.Query.sort(:title)
|
|
|
|
|> Api.read!()
|
|
|
|
|
|
|
|
assert [%{title: "title1"}, %{title: "title2"}] = results
|
|
|
|
end
|
2020-08-20 09:09:22 +12:00
|
|
|
end
|