opentelemetry-erlang-contrib/instrumentation/opentelemetry_oban/test/support/data_case.ex

33 lines
753 B
Elixir

defmodule DataCase do
@moduledoc """
This module defines the setup for tests requiring access to the data layer.
You may define functions here to be used as helpers in your tests.
Finally, if the test case interacts with the database, it cannot be async.
For this reason, every test runs inside a transaction which is reset at the
beginning of the test unless the test case is marked as async.
"""
use ExUnit.CaseTemplate
using do
quote do
use Oban.Testing, repo: TestRepo
import Ecto
import DataCase
end
end
setup tags do
:ok = Ecto.Adapters.SQL.Sandbox.checkout(TestRepo)
unless tags[:async] do
Ecto.Adapters.SQL.Sandbox.mode(TestRepo, {:shared, self()})
end
:ok
end
end