Files
bDS2/test/test_helper.exs

31 lines
1.1 KiB
Elixir

cache_root = Path.join(System.tmp_dir!(), "bds-test-cache-#{System.unique_integer([:positive])}")
File.mkdir_p!(cache_root)
Application.put_env(:bds, :project_cache_root, cache_root)
# Public, user-owned default project content lives under a per-user default
# content location — never the repo or the private app dir. Tests redirect it
# to a throwaway temp dir so first-launch defaults never touch the developer's
# home directory.
content_root =
Path.join(System.tmp_dir!(), "bds-test-content-#{System.unique_integer([:positive])}")
File.mkdir_p!(content_root)
Application.put_env(:bds, :default_content_root, content_root)
Enum.each(["LC_ALL", "LC_MESSAGES", "LANG"], fn variable ->
System.put_env(variable, "en_US.UTF-8")
end)
# The test suite spins up long-lived LiveView, Bandit, and desktop automation
# processes against a single SQLite database. Running files concurrently causes
# intermittent `Database busy` failures in otherwise passing tests, so the
# default suite runs serially.
ExUnit.start(max_cases: 1)
ExUnit.after_suite(fn _results ->
File.rm_rf(cache_root)
File.rm_rf(content_root)
end)
Ecto.Adapters.SQL.Sandbox.mode(BDS.Repo, :manual)