anise v0.1.0 Anise.SubscriptionCase View Source

Conveniences for testing Absinthe subscriptions

Usage

Setup

You need to use use macro, and pass required options.

@endpoint MyAppWeb.Endpoint
use Anise.SubscriptionCase,
  schema: MyAppWeb.Schema,
  socket: MyAppWeb.UserSocket

Example above is from application specific SubscriptionCase, like ones that Phoenix generates.

Usage

test "sub with fufilment", %{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"})

  assert subscription_fulfilment = %{
    result: %{data: %{"userAdded" => %{"name" => "Boris"}}}
  }
end

Link to this section Summary

Functions

When subscription fufiled it receives data from it

Same as assert_subscription_fulfilment but refute

Link to this section Functions

Link to this macro assert_subscription_fulfilment(expected) View Source (macro)

When subscription fufiled it receives data from it.

WARNING

Paylod are patterns, dont forget to pin variables!

Exapmples

Good

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

Bad

expected = %{result: %{data: %{"userAdded" => %{"name" => "Boris"}}}}
assert_subscription_fulfilment expected
Link to this macro refute_subscription_fulfilment(expected) View Source (macro)

Same as assert_subscription_fulfilment but refute