Current section
Files
Jump to
Current section
Files
lib/test_helper.exs
# ExUnit.start(trace: true) ## -> verbose output, great for debugging!
ExUnit.start()
Mneme.start(restart: true)
defmodule MnemeDefaults do
defmacro __using__(_) do
quote do
use Mneme, action: :accept, default_pattern: :last, force_update: false
end
end
end
defmodule TestSupport do
use ExUnit.Case
def extract_res({:ok, res}) do
Map.get(res, "result")
end
def extract_res({:ok, res}, index) do
extract_res({:ok, res}) |> Enum.at(index) |> Map.get("result")
end
def extract_res_list({:ok, res}) do
result = Map.get(res, "result")
result
|> Enum.map(fn x ->
{:ok, Map.get(x, "result")}
end)
end
def setup_surrealix(_context) do
db = db_name()
# NOT start_link(), so we can cleanup after test exits!
# {:ok, pid} = Surrealix.start(debug: [:trace]) ## this is for debugging!
{:ok, pid} = Surrealix.start()
Surrealix.signin(pid, %{user: "root", pass: "root"})
Surrealix.use(pid, "test", db)
on_exit(:drop_db, fn ->
_res = Surrealix.query(pid, "remove database #{db};")
Surrealix.stop(pid)
end)
%{pid: pid}
end
def db_name() do
rand =
:crypto.strong_rand_bytes(6)
|> Base.encode64()
"test_#{Regex.replace(~r/\W/, rand, "")}"
end
end