defmodule LiveState.TestHelpers do require Phoenix.ChannelTest import Phoenix.ChannelTest @doc """ Pushes a live state event over the channel """ def send_event(socket, event, payload) do push(socket, "lvs_evt:" <> event, payload) end @doc """ Asserts that `state:change` message is received over a channel matching the specified pattern """ defmacro assert_state_change(state) do quote do assert_push "state:change", %{state: unquote(state)} end end @doc """ Asserts that `state:patch` message is received over a channel matching the specified pattern """ defmacro assert_state_patch(patch) do quote do assert_push "state:patch", %{patch: unquote(patch)} end end end