Anise is a set of helpers/assertions for Absinthe
def deps do
[
{:anise, "~> 0.1.1"}
]
end
Add use Anise
on top of your tests.
Than you can do that.
graphql(conn, "/api", @mutation, %{email: "test@example.com", name: "Boris"})
same for queries.
Create subscription_case.ex
in test/support
.
defmodule MyAppWeb.SubscriptionCase do
use ExUnit.CaseTemplate
using do
quote do
@endpoint MyAppWeb.Endpoint
use Anise
use Anise.SubscriptionCase,
schema: MyAppWeb.Schema,
socket: MyAppWeb.UserSocket
end
end
setup do
:ok
end
end
Then in your subscription tests add use MyAppWeb.Subscription
Now you can test your subscriptions.
describe "User add" do
test "valid data", %{socket: socket, conn: conn} do
assert %{
payload: %{subscriptionId: sub_id},
status: :ok
} = subscribe(socket, @subscription)
graphql(conn, "/api", @mutation, %{email: "test@example.com", name: "Boris"})
expected = %{result: %{data: %{"userAdded" => %{"name" => "Boris"}}}}
assert_subscription_fulfilment fufilment
assert fufilment = expected
end
end