| 123456789101112131415161718192021222324252627282930313233343536 |
- defmodule ToyWeb.ChannelCase do
- @moduledoc """
- This module defines the test case to be used by
- channel tests.
- Such tests rely on `Phoenix.ChannelTest` and also
- import other functionality to make it easier
- to build common data structures and query the data layer.
- Finally, if the test case interacts with the database,
- we enable the SQL sandbox, so changes done to the database
- are reverted at the end of every test. If you are using
- PostgreSQL, you can even run database tests asynchronously
- by setting `use ToyWeb.ChannelCase, async: true`, although
- this option is not recommended for other databases.
- """
- use ExUnit.CaseTemplate
- using do
- quote do
- # Import conveniences for testing with channels
- import Phoenix.ChannelTest
- import ToyWeb.ChannelCase
- # The default endpoint for testing
- @endpoint ToyWeb.Endpoint
- end
- end
- setup tags do
- pid = Ecto.Adapters.SQL.Sandbox.start_owner!(Toy.Repo, shared: not tags[:async])
- on_exit(fn -> Ecto.Adapters.SQL.Sandbox.stop_owner(pid) end)
- :ok
- end
- end
|