total rebase
[anni] / test / test_helper.exs
old mode 100755 (executable)
new mode 100644 (file)
index 60a6148..a117584
@@ -2,8 +2,17 @@
 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
-os_exclude = if :os.type() == {:unix, :darwin}, do: [skip_on_mac: true], else: []
-ExUnit.start(exclude: [:federated, :erratic] ++ os_exclude)
+Code.put_compiler_option(:warnings_as_errors, true)
+
+ExUnit.configure(max_cases: System.schedulers_online())
+
+ExUnit.start(exclude: [:federated, :erratic])
+
+if match?({:unix, :darwin}, :os.type()) do
+  excluded = ExUnit.configuration() |> Keyword.get(:exclude, [])
+  excluded = excluded ++ [:skip_darwin]
+  ExUnit.configure(exclude: excluded)
+end
 
 Ecto.Adapters.SQL.Sandbox.mode(Pleroma.Repo, :manual)
 
@@ -16,3 +25,16 @@ ExUnit.after_suite(fn _results ->
   uploads = Pleroma.Config.get([Pleroma.Uploaders.Local, :uploads], "test/uploads")
   File.rm_rf!(uploads)
 end)
+
+defmodule Pleroma.Test.StaticConfig do
+  @moduledoc """
+  This module provides a Config that is completely static, built at startup time from the environment. It's safe to use in testing as it will not modify any state.
+  """
+
+  @behaviour Pleroma.Config.Getting
+  @config Application.get_all_env(:pleroma)
+
+  def get(path, default \\ nil) do
+    get_in(@config, path) || default
+  end
+end