logger backends fix
[akkoma] / test / web / admin_api / admin_api_controller_test.exs
index 06b3266c14880e88f35f05fbc65edefe864a5ddd..56a3a3a976d0af2f4f72641be0ce1c56755d5f49 100644 (file)
@@ -2204,6 +2204,42 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
              }
     end
 
+    test "saving full setting if value is in full_key_update list", %{conn: conn} do
+      backends = Application.get_env(:logger, :backends)
+      on_exit(fn -> Application.put_env(:logger, :backends, backends) end)
+
+      config =
+        insert(:config,
+          group: ":logger",
+          key: ":backends",
+          value: :erlang.term_to_binary([])
+        )
+
+      conn =
+        post(conn, "/api/pleroma/admin/config", %{
+          configs: [
+            %{group: config.group, key: config.key, value: [":console"]}
+          ]
+        })
+
+      assert json_response(conn, 200) == %{
+               "configs" => [
+                 %{
+                   "group" => ":logger",
+                   "key" => ":backends",
+                   "value" => [":console"]
+                 }
+               ]
+             }
+
+      assert Application.get_env(:logger, :backends) == [:console]
+
+      ExUnit.CaptureLog.capture_log(fn ->
+        require Logger
+        Logger.warn("Ooops...")
+      end) =~ "Ooops..."
+    end
+
     test "saving full setting if value is not keyword", %{conn: conn} do
       config =
         insert(:config,