ash_csv/test/ash_csv_test.exs

66 lines
1.3 KiB
Elixir
Raw Normal View History

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