Current section

Files

Jump to
potionx priv templates potion.gen.gql_for_model queries_test.exs
Raw

priv/templates/potion.gen.gql_for_model/queries_test.exs

defmodule <%= module_name_graphql %>.Schema.<%= model_name %>QueryTest do
use <%= module_name_data %>.DataCase
alias <%= module_name_data %>.<%= context_name %>.<%= model_name %>Mock
alias <%= module_name_data %>.<%= context_name %>.<%= model_name %>Service
describe "<%= model_name_snakecase %> collection and single" do
setup do
ctx = %Potionx.Context.Service{
changes: <%= model_name %>Mock.run(),
roles: [:admin],
session: %{
id: 1,
user: %{
id: 1,
roles: [:admin]
}
}
}
{:ok, entry} = <%= model_name %>Service.mutation(ctx)
{:ok, ctx: ctx, entry: entry}
end
test "returns collection of <%= model_name_snakecase %>", %{ctx: ctx} do
File.read!("shared/src/models/<%= context_name %>/<%= model_name %>/<%= model_name_graphql_case %>Collection.gql")
|> Absinthe.run(
<%= module_name_graphql %>.Schema,
context: ctx,
variables: %{
"first" => 15
}
)
|> (fn {:ok, res} ->
assert res.data["<%= model_name_graphql_case %>Collection"]["count"] === 1
assert res.data["<%= model_name_graphql_case %>Collection"]["edges"] |> Enum.count === 1
end).()
end
test "returns single <%= model_name_snakecase %>", %{ctx: ctx, entry: entry} do
File.read!("shared/src/models/<%= context_name %>/<%= model_name %>/<%= model_name_graphql_case %>Single.gql")
|> Absinthe.run(
<%= module_name_graphql %>.Schema,
context: ctx,
variables: %{
"filters" => %{
"id" => Absinthe.Relay.Node.to_global_id(
:<%= model_name_snakecase %>,
entry.id,
<%= module_name_graphql %>.Schema
)
}
}
)
|> (fn {:ok, res} ->
assert res.data["<%= model_name_graphql_case %>Single"]["id"] ===
Absinthe.Relay.Node.to_global_id(
:<%= model_name_snakecase %>,
entry.id,
<%= module_name_graphql %>.Schema
)
end).()
end
end
end