Validate custom instance thumbnail set via AdminAPI produces correct URL
authorMark Felder <feld@feld.me>
Tue, 13 Apr 2021 15:52:53 +0000 (10:52 -0500)
committerMark Felder <feld@feld.me>
Tue, 13 Apr 2021 15:52:53 +0000 (10:52 -0500)
CHANGELOG.md
test/pleroma/web/admin_api/controllers/config_controller_test.exs

index 6c45cad853aed2ac3f4fbcc0f93753fd3fb098de..1553245e53b372df9c7c9aeaeb65b31f5f143015 100644 (file)
@@ -19,6 +19,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 ### Fixed
 
 - Try to save exported ConfigDB settings (migrate_from_db) in the system temp directory if default location is not writable.
+- Uploading custom instance thumbnail via AdminAPI/AdminFE generated invalid URL to the image
 
 ## [2.3.0] - 2020-03-01
 
index 578a4c914074fda7524993cc306ffc431b1359aa..71151712e809be63459b682e8ec42f31a726770c 100644 (file)
@@ -1410,6 +1410,48 @@ defmodule Pleroma.Web.AdminAPI.ConfigControllerTest do
                "need_reboot" => false
              }
     end
+
+    test "custom instance thumbnail", %{conn: conn} do
+      clear_config([:instance])
+
+      params = %{
+        "group" => ":pleroma",
+        "key" => ":instance",
+        "value" => [
+          %{
+            "tuple" => [
+              ":instance_thumbnail",
+              "https://example.com/media/new_thumbnail.jpg"
+            ]
+          }
+        ]
+      }
+
+      res =
+        assert conn
+               |> put_req_header("content-type", "application/json")
+               |> post("/api/pleroma/admin/config", %{"configs" => [params]})
+               |> json_response_and_validate_schema(200)
+
+      assert res == %{
+               "configs" => [
+                 %{
+                   "db" => [":instance_thumbnail"],
+                   "group" => ":pleroma",
+                   "key" => ":instance",
+                   "value" => params["value"]
+                 }
+               ],
+               "need_reboot" => false
+             }
+
+      assert res =
+               conn
+               |> get("/api/v1/instance")
+               |> json_response_and_validate_schema(200)
+
+      assert res = %{"thumbnail" => "https://example.com/media/new_thumbnail.jpg"}
+    end
   end
 
   describe "GET /api/pleroma/admin/config/descriptions" do