Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gen1321/anise

Set of helpers/asserts for Absinthe
https://github.com/gen1321/anise

absinthe absinthe-graphql elixir exunit graphql

Last synced: 16 days ago
JSON representation

Set of helpers/asserts for Absinthe

Awesome Lists containing this project

README

        

# Anise

Anise is a set of helpers/assertions for Absinthe

## Installation

```elixir
def deps do
[
{:anise, "~> 0.1.1"}
]
end
```

## Usage

### Without subscriptions
Add `use Anise` on top of your tests.

Than you can do that.

```elixir
graphql(conn, "/api", @mutation, %{email: "[email protected]", name: "Boris"})
```
same for queries.

### With subscriptions
Create `subscription_case.ex` in `test/support`.

```elixir
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.

```elixir
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: "[email protected]", name: "Boris"})

expected = %{result: %{data: %{"userAdded" => %{"name" => "Boris"}}}}
assert_subscription_fulfilment fufilment
assert fufilment = expected
end
end
```