ash_admin/test/ash_admin_test.exs
2024-05-15 14:10:36 -04:00

91 lines
2 KiB
Elixir

defmodule AshAdmin.Test.AshAdminTest do
@moduledoc false
use ExUnit.Case, async: true
test "all resources are shown by default", _ do
defmodule Domain do
@moduledoc false
use Ash.Domain,
extensions: [AshAdmin.Domain]
admin do
show? true
end
resources do
resource AshAdmin.Test.Post
resource AshAdmin.Test.Comment
end
end
assert AshAdmin.Domain.show_resources(Domain) === [
AshAdmin.Test.Post,
AshAdmin.Test.Comment
]
end
test "all resources are shown when :* option is selected", _ do
defmodule Domain do
@moduledoc false
use Ash.Domain,
extensions: [AshAdmin.Domain]
admin do
show? true
show_resources :*
end
resources do
resource AshAdmin.Test.Post
resource AshAdmin.Test.Comment
end
end
assert AshAdmin.Domain.show_resources(Domain) === [
AshAdmin.Test.Post,
AshAdmin.Test.Comment
]
end
test "selected resources are shown", _ do
defmodule Domain do
@moduledoc false
use Ash.Domain,
extensions: [AshAdmin.Domain]
admin do
show? true
show_resources AshAdmin.Test.Post
end
resources do
resource AshAdmin.Test.Post
resource AshAdmin.Test.Comment
end
end
assert AshAdmin.Domain.show_resources(Domain) === [
AshAdmin.Test.Post
]
end
test "if shown resrouces option not eixsting resource providede error", _ do
assert_raise(Spark.Error.DslError, "[AshAdmin.Test.AshAdminTest.Domain]\n admin -> show_resources:\n SomeRandom is not a valid resource in AshAdmin.Test.AshAdminTest.Domain", fn ->
defmodule Domain do
@moduledoc false
use Ash.Domain,
extensions: [AshAdmin.Domain]
admin do
show? true
show_resources [AshAdmin.Test.Post, SomeRandom]
end
resources do
resource AshAdmin.Test.Post
resource AshAdmin.Test.Comment
end
end
end)
end
end