aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/application/requirements_test.exs (renamed from test/application_requirements_test.exs)35
-rw-r--r--test/config/config_db_test.exs19
-rw-r--r--test/config/environment_test.exs (renamed from test/config/transfer_task_test.exs)58
-rw-r--r--test/web/admin_api/controllers/admin_api_controller_test.exs21
-rw-r--r--test/web/admin_api/controllers/config_controller_test.exs15
5 files changed, 52 insertions, 96 deletions
diff --git a/test/application_requirements_test.exs b/test/application/requirements_test.exs
index 21d24ddd0..09fbbf20e 100644
--- a/test/application_requirements_test.exs
+++ b/test/application/requirements_test.exs
@@ -2,11 +2,13 @@
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
-defmodule Pleroma.ApplicationRequirementsTest do
+defmodule Pleroma.Application.RequirementsTest do
use Pleroma.DataCase
import ExUnit.CaptureLog
import Mock
+ alias Pleroma.Application.Requirements
+ alias Pleroma.Config
alias Pleroma.Repo
describe "check_welcome_message_config!/1" do
@@ -61,8 +63,7 @@ defmodule Pleroma.ApplicationRequirementsTest do
describe "check_rum!" do
setup_with_mocks([
- {Pleroma.ApplicationRequirements, [:passthrough],
- [check_migrations_applied!: fn _ -> :ok end]}
+ {Requirements, [:passthrough], [check_migrations_applied!: fn _ -> :ok end]}
]) do
:ok
end
@@ -70,42 +71,42 @@ defmodule Pleroma.ApplicationRequirementsTest do
setup do: clear_config([:database, :rum_enabled])
test "raises if rum is enabled and detects unapplied rum migrations" do
- Pleroma.Config.put([:database, :rum_enabled], true)
+ Config.put([:database, :rum_enabled], true)
with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> false end]}]) do
- assert_raise Pleroma.ApplicationRequirements.VerifyError,
+ assert_raise Requirements.VerifyError,
"Unapplied RUM Migrations detected",
fn ->
- capture_log(&Pleroma.ApplicationRequirements.verify!/0)
+ capture_log(&Requirements.verify!/0)
end
end
end
test "raises if rum is disabled and detects rum migrations" do
- Pleroma.Config.put([:database, :rum_enabled], false)
+ Config.put([:database, :rum_enabled], false)
with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> true end]}]) do
- assert_raise Pleroma.ApplicationRequirements.VerifyError,
+ assert_raise Requirements.VerifyError,
"RUM Migrations detected",
fn ->
- capture_log(&Pleroma.ApplicationRequirements.verify!/0)
+ capture_log(&Requirements.verify!/0)
end
end
end
test "doesn't do anything if rum enabled and applied migrations" do
- Pleroma.Config.put([:database, :rum_enabled], true)
+ Config.put([:database, :rum_enabled], true)
with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> true end]}]) do
- assert Pleroma.ApplicationRequirements.verify!() == :ok
+ assert Requirements.verify!() == :ok
end
end
test "doesn't do anything if rum disabled" do
- Pleroma.Config.put([:database, :rum_enabled], false)
+ Config.put([:database, :rum_enabled], false)
with_mocks([{Repo, [:passthrough], [exists?: fn _, _ -> false end]}]) do
- assert Pleroma.ApplicationRequirements.verify!() == :ok
+ assert Requirements.verify!() == :ok
end
end
end
@@ -130,17 +131,17 @@ defmodule Pleroma.ApplicationRequirementsTest do
setup do: clear_config([:i_am_aware_this_may_cause_data_loss, :disable_migration_check])
test "raises if it detects unapplied migrations" do
- assert_raise Pleroma.ApplicationRequirements.VerifyError,
+ assert_raise Requirements.VerifyError,
"Unapplied Migrations detected",
fn ->
- capture_log(&Pleroma.ApplicationRequirements.verify!/0)
+ capture_log(&Requirements.verify!/0)
end
end
test "doesn't do anything if disabled" do
- Pleroma.Config.put([:i_am_aware_this_may_cause_data_loss, :disable_migration_check], true)
+ Config.put([:i_am_aware_this_may_cause_data_loss, :disable_migration_check], true)
- assert :ok == Pleroma.ApplicationRequirements.verify!()
+ assert :ok == Requirements.verify!()
end
end
end
diff --git a/test/config/config_db_test.exs b/test/config/config_db_test.exs
index 3895e2cda..bd2f2ba60 100644
--- a/test/config/config_db_test.exs
+++ b/test/config/config_db_test.exs
@@ -543,4 +543,23 @@ defmodule Pleroma.ConfigDBTest do
]
end
end
+
+ test "load_and_merge_with_defaults/1" do
+ assert Pleroma.Config.Holder.default_config(:logger, :console)[:level] == :warn
+
+ {:ok, config} =
+ ConfigDB.update_or_create(%{group: :logger, key: :console, value: [level: :debug]})
+
+ assert [{:logger, :console, [level: :debug], merged}] =
+ ConfigDB.load_and_merge_with_defaults()
+
+ assert merged[:level] == :debug
+
+ {:ok, deleted} = ConfigDB.delete(config)
+
+ assert [{:logger, :console, [level: :debug], merged}] =
+ ConfigDB.load_and_merge_with_defaults([deleted])
+
+ assert merged[:level] == :warn
+ end
end
diff --git a/test/config/transfer_task_test.exs b/test/config/environment_test.exs
index f53829e09..681430c3f 100644
--- a/test/config/transfer_task_test.exs
+++ b/test/config/environment_test.exs
@@ -1,14 +1,13 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
-# SPDX-License-Identifier: AGPL-3.0-only
+# # Pleroma: A lightweight social networking server
+# # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# # SPDX-License-Identifier: AGPL-3.0-only
-defmodule Pleroma.Config.TransferTaskTest do
+defmodule Pleroma.Config.EnvironmentTest do
use Pleroma.DataCase
- import ExUnit.CaptureLog
import Pleroma.Factory
- alias Pleroma.Config.TransferTask
+ alias Pleroma.Config.Environment
setup do: clear_config(:configurable_from_database, true)
@@ -25,7 +24,7 @@ defmodule Pleroma.Config.TransferTaskTest do
insert(:config, group: :postgrex, key: :test_key, value: :value)
insert(:config, group: :logger, key: :level, value: :debug)
- TransferTask.start_link([])
+ Environment.load_and_update()
assert Application.get_env(:pleroma, :test_key) == [live: 2, com: 3]
assert Application.get_env(:idna, :test_key) == [live: 15, com: 35]
@@ -49,7 +48,7 @@ defmodule Pleroma.Config.TransferTaskTest do
insert(:config, group: :quack, key: :level, value: :info)
insert(:config, group: :quack, key: :meta, value: [:none])
- TransferTask.start_link([])
+ Environment.load_and_update()
assert Application.get_env(:quack, :level) == :info
assert Application.get_env(:quack, :meta) == [:none]
@@ -69,52 +68,11 @@ defmodule Pleroma.Config.TransferTaskTest do
insert(:config, key: :emoji, value: [groups: [a: 1, b: 2]])
insert(:config, key: :assets, value: [mascots: [a: 1, b: 2]])
- TransferTask.start_link([])
+ Environment.load_and_update()
emoji_env = Application.get_env(:pleroma, :emoji)
assert emoji_env[:groups] == [a: 1, b: 2]
assets_env = Application.get_env(:pleroma, :assets)
assert assets_env[:mascots] == [a: 1, b: 2]
end
-
- describe "pleroma restart" do
- setup do
- on_exit(fn -> Restarter.Pleroma.refresh() end)
- end
-
- test "don't restart if no reboot time settings were changed" do
- clear_config(:emoji)
- insert(:config, key: :emoji, value: [groups: [a: 1, b: 2]])
-
- refute String.contains?(
- capture_log(fn -> TransferTask.start_link([]) end),
- "pleroma restarted"
- )
- end
-
- test "on reboot time key" do
- clear_config(:chat)
- insert(:config, key: :chat, value: [enabled: false])
- assert capture_log(fn -> TransferTask.start_link([]) end) =~ "pleroma restarted"
- end
-
- test "on reboot time subkey" do
- clear_config(Pleroma.Captcha)
- insert(:config, key: Pleroma.Captcha, value: [seconds_valid: 60])
- assert capture_log(fn -> TransferTask.start_link([]) end) =~ "pleroma restarted"
- end
-
- test "don't restart pleroma on reboot time key and subkey if there is false flag" do
- clear_config(:chat)
- clear_config(Pleroma.Captcha)
-
- insert(:config, key: :chat, value: [enabled: false])
- insert(:config, key: Pleroma.Captcha, value: [seconds_valid: 60])
-
- refute String.contains?(
- capture_log(fn -> TransferTask.load_and_update_env([], false) end),
- "pleroma restarted"
- )
- end
- end
end
diff --git a/test/web/admin_api/controllers/admin_api_controller_test.exs b/test/web/admin_api/controllers/admin_api_controller_test.exs
index cba6b43d3..229b262b3 100644
--- a/test/web/admin_api/controllers/admin_api_controller_test.exs
+++ b/test/web/admin_api/controllers/admin_api_controller_test.exs
@@ -6,7 +6,6 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
use Pleroma.Web.ConnCase
use Oban.Testing, repo: Pleroma.Repo
- import ExUnit.CaptureLog
import Mock
import Pleroma.Factory
import Swoosh.TestAssertions
@@ -1426,28 +1425,12 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
setup do: clear_config(:configurable_from_database, true)
test "pleroma restarts", %{conn: conn} do
- capture_log(fn ->
- assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) == %{}
- end) =~ "pleroma restarted"
+ assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) == %{}
- refute Restarter.Pleroma.need_reboot?()
+ refute Pleroma.Application.DynamicSupervisor.need_reboot?()
end
end
- test "need_reboot flag", %{conn: conn} do
- assert conn
- |> get("/api/pleroma/admin/need_reboot")
- |> json_response(200) == %{"need_reboot" => false}
-
- Restarter.Pleroma.need_reboot()
-
- assert conn
- |> get("/api/pleroma/admin/need_reboot")
- |> json_response(200) == %{"need_reboot" => true}
-
- on_exit(fn -> Restarter.Pleroma.refresh() end)
- end
-
describe "GET /api/pleroma/admin/users/:nickname/statuses" do
setup do
user = insert(:user)
diff --git a/test/web/admin_api/controllers/config_controller_test.exs b/test/web/admin_api/controllers/config_controller_test.exs
index 4e897455f..a4b630dae 100644
--- a/test/web/admin_api/controllers/config_controller_test.exs
+++ b/test/web/admin_api/controllers/config_controller_test.exs
@@ -187,7 +187,6 @@ defmodule Pleroma.Web.AdminAPI.ConfigControllerTest do
Application.delete_env(:pleroma, Pleroma.Captcha.NotReal)
Application.put_env(:pleroma, :http, http)
Application.put_env(:tesla, :adapter, Tesla.Mock)
- Restarter.Pleroma.refresh()
end)
end
@@ -408,8 +407,7 @@ defmodule Pleroma.Web.AdminAPI.ConfigControllerTest do
end
test "saving config which need pleroma reboot", %{conn: conn} do
- chat = Config.get(:chat)
- on_exit(fn -> Config.put(:chat, chat) end)
+ clear_config(:chat)
assert conn
|> put_req_header("content-type", "application/json")
@@ -454,8 +452,7 @@ defmodule Pleroma.Web.AdminAPI.ConfigControllerTest do
end
test "update setting which need reboot, don't change reboot flag until reboot", %{conn: conn} do
- chat = Config.get(:chat)
- on_exit(fn -> Config.put(:chat, chat) end)
+ clear_config(:chat)
assert conn
|> put_req_header("content-type", "application/json")
@@ -500,10 +497,8 @@ defmodule Pleroma.Web.AdminAPI.ConfigControllerTest do
"need_reboot" => true
}
- capture_log(fn ->
- assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) ==
- %{}
- end) =~ "pleroma restarted"
+ assert conn |> get("/api/pleroma/admin/restart") |> json_response(200) ==
+ %{}
configs =
conn
@@ -621,7 +616,7 @@ defmodule Pleroma.Web.AdminAPI.ConfigControllerTest do
value: []
)
- Pleroma.Config.TransferTask.load_and_update_env([], false)
+ Pleroma.Config.Environment.load_and_update()
assert Application.get_env(:logger, :backends) == []