31 lines
1.1 KiB
Elixir
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)
|