mirror of
https://github.com/plausible/analytics.git
synced 2024-09-11 18:07:33 +03:00
a181f3eab3
* Move fragments module under Plausible.Stats.SQL * Introduce select_merge_as macro This simplifies some select_merge calls * Simplify select_join_fields * Remove a needless dynamic * wrap_select_columns macro * Move metrics from base.ex to expression.ex * Move WhereBuilder under Plausible.Stats.SQL * Moduledoc * Improved macros * Wrap more code * select_merge_as more * Move defp to the end * include.time_labels parsing * include.time_labels in result Note that the previous implementation of the labels from TimeSeries.ex was broken * Apply consistent function in imports and timeseries.ex * Remove boilerplate * WIP: Limited support for timeseries-with-querybuilder * time:week dimension * cleanup: property -> dimension * Make querying with time series work * Refactor: Move special metrics (percentage, conversion rate) to own module * Explicitly format datetimes * Consistent include_imported in special metrics * Solve week-related crash * conversion_rate hacking * Keep include_imported consistent after splitting the query * Simplify do_decide_tables * Handle time dimensions in imports cleaner * Allow time dimensions in custom property queries * time:week handling continued * cast_revenue_metrics_to_money * fix `full_intervals` support * Handle minute/realtime graphs * experimental_session_count? with timeseries This becomes required as we try to include visits from sessions by default * Support hourly data in imports * Update bounce_rate in more csv tests * Update some time-series query tests * Fix for meta.warning being included incorrectly * Simplify imported.ex * experimental_session_count flag removal * moduledoc * Split interval and time modules
32 lines
1.0 KiB
Elixir
32 lines
1.0 KiB
Elixir
FunWithFlags.enable(:verification)
|
|
|
|
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)
|
|
Mox.defmock(Plausible.HTTPClient.Mock, for: Plausible.HTTPClient.Interface)
|
|
Application.ensure_all_started(:double)
|
|
|
|
# Temporary flag to test `experimental_reduced_joins` flag on all tests.
|
|
if System.get_env("TEST_EXPERIMENTAL_REDUCED_JOINS") == "1" do
|
|
FunWithFlags.enable(:experimental_reduced_joins)
|
|
else
|
|
FunWithFlags.disable(:experimental_reduced_joins)
|
|
end
|
|
|
|
Ecto.Adapters.SQL.Sandbox.mode(Plausible.Repo, :manual)
|
|
|
|
# warn about minio if it's included in tests but not running
|
|
if :minio in Keyword.fetch!(ExUnit.configuration(), :include) do
|
|
Plausible.TestUtils.ensure_minio()
|
|
end
|
|
|
|
if Mix.env() == :ce_test do
|
|
IO.puts("Test mode: Community Edition")
|
|
ExUnit.configure(exclude: [:slow, :minio, :ee_only])
|
|
else
|
|
IO.puts("Test mode: Enterprise Edition")
|
|
ExUnit.configure(exclude: [:slow, :minio, :ce_build_only])
|
|
end
|