mirror of
https://github.com/ash-project/ash_csv.git
synced 2024-09-21 05:42:51 +12:00
65 lines
1.3 KiB
Elixir
65 lines
1.3 KiB
Elixir
defmodule AshCsvTest do
|
|
use ExUnit.Case, async: false
|
|
alias AshCsv.Test.{Api, Post}
|
|
require Ash.Query
|
|
|
|
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
|
|
|> Ash.Query.filter(title in ["title1", "title2"])
|
|
|> Ash.Query.sort(:title)
|
|
|> Api.read!()
|
|
|
|
assert [%{title: "title1"}, %{title: "title2"}] = results
|
|
end
|
|
end
|