diff options
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.exs | 19 | ||||
-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.exs | 21 | ||||
-rw-r--r-- | test/web/admin_api/controllers/config_controller_test.exs | 15 |
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) == [] |