Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 1.3 KB

README.md

File metadata and controls

72 lines (53 loc) · 1.3 KB

Anise

Anise is a set of helpers/assertions for Absinthe

Installation

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

Usage

Without subscriptions

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.

With subscriptions

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