Add a test for custom runtime modules
authorEgor Kislitsyn <egor@kislitsyn.com>
Fri, 6 Dec 2019 10:05:09 +0000 (17:05 +0700)
committerEgor Kislitsyn <egor@kislitsyn.com>
Fri, 6 Dec 2019 10:05:09 +0000 (17:05 +0700)
config/test.exs
lib/pleroma/application.ex
test/fixtures/modules/runtime_module.ex [new file with mode: 0644]
test/runtime_test.exs [new file with mode: 0644]

index 9b737d4d7e3960588d74819f8e2fa423d3077d72..8b9bf5c773f40535a65c7dab188efbb41ddad111 100644 (file)
@@ -93,6 +93,8 @@ config :joken, default_signer: "yU8uHKq+yyAkZ11Hx//jcdacWc8yQ1bxAAGrplzB0Zwwjkp3
 
 config :pleroma, Pleroma.ReverseProxy.Client, Pleroma.ReverseProxy.ClientMock
 
+config :pleroma, :modules, runtime_dir: "test/fixtures/modules"
+
 if File.exists?("./config/test.secret.exs") do
   import_config "test.secret.exs"
 else
index 17f6b9c8038a8558de6c65bba6353fd04ec7e163..82a0057006553f44e4b3d115747213731795c079 100644 (file)
@@ -81,9 +81,11 @@ defmodule Pleroma.Application do
           raise "Invalid custom modules"
 
         {:ok, modules, _warnings} ->
-          Enum.each(modules, fn mod ->
-            IO.puts("Custom module loaded: #{inspect(mod)}")
-          end)
+          if @env != :test do
+            Enum.each(modules, fn mod ->
+              IO.puts("Custom module loaded: #{inspect(mod)}")
+            end)
+          end
 
           :ok
       end
diff --git a/test/fixtures/modules/runtime_module.ex b/test/fixtures/modules/runtime_module.ex
new file mode 100644 (file)
index 0000000..4711c35
--- /dev/null
@@ -0,0 +1,9 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule RuntimeModule do
+  @moduledoc """
+  This is a dummy module to test custom runtime modules.
+  """
+end
diff --git a/test/runtime_test.exs b/test/runtime_test.exs
new file mode 100644 (file)
index 0000000..f7b6f23
--- /dev/null
@@ -0,0 +1,11 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.RuntimeTest do
+  use ExUnit.Case, async: true
+
+  test "it loads custom runtime modules" do
+    assert Code.ensure_compiled?(RuntimeModule)
+  end
+end