| if not Enum.empty?(Path.wildcard("lib/**/*_test.exs")) do |
| raise "Oops, test(s) found in `lib/` directory. Move them to `test/`." |
| end |
|
|
| {:ok, _} = Application.ensure_all_started(:ex_machina) |
|
|
| if Mix.env() != :e2e_test do |
| Mox.defmock(Plausible.HTTPClient.Mock, for: Plausible.HTTPClient.Interface) |
|
|
| Mox.defmock(Plausible.DnsLookup.Mock, |
| for: Plausible.DnsLookupInterface |
| ) |
|
|
| Application.ensure_all_started(:double) |
|
|
| FunWithFlags.enable(:annotations) |
|
|
| Ecto.Adapters.SQL.Sandbox.mode(Plausible.Repo, :manual) |
| end |
|
|
| |
| if :minio in Keyword.fetch!(ExUnit.configuration(), :include) do |
| Plausible.TestUtils.ensure_minio() |
| end |
|
|
| default_exclude = [:slow, :minio, :migrations] |
|
|
| |
| for {app, _, _} <- Application.loaded_applications() do |
| if modules = Application.spec(app, :modules) do |
| Code.ensure_all_loaded(modules) |
| end |
| end |
|
|
| case Mix.env() do |
| :ce_test -> |
| IO.puts("Test mode: Community Edition") |
| ExUnit.configure(exclude: [:ee_only, :e2e | default_exclude]) |
|
|
| :e2e_test -> |
| IO.puts("Test mode: End-to-End Tests") |
| ExUnit.configure(exclude: [:test], include: [:e2e]) |
|
|
| _ -> |
| IO.puts("Test mode: Enterprise Edition") |
| ExUnit.configure(exclude: [:ce_build_only, :e2e | default_exclude]) |
| end |
|
|