FrontendStatic: Work correctly for other frontend types.
authorlain <lain@soykaf.club>
Wed, 29 Jul 2020 11:02:48 +0000 (13:02 +0200)
committerlain <lain@soykaf.club>
Wed, 29 Jul 2020 11:02:48 +0000 (13:02 +0200)
lib/pleroma/plugs/frontend_static.ex
test/plugs/frontend_static_test.exs

index f549ca75fa1677278845c532a55aa2c4b4e50ed6..11a0d538222e051ec99abba2f512fca3a04f3b5c 100644 (file)
@@ -30,6 +30,7 @@ defmodule Pleroma.Plugs.FrontendStatic do
     opts
     |> Keyword.put(:from, "__unconfigured_frontend_static_plug")
     |> Plug.Static.init()
+    |> Map.put(:frontend_type, opts[:frontend_type])
   end
 
   def call(conn, opts) do
index d11d91d78ff8f1bf0e10a8516c6140fcdba46928..6f49230481e80763475e0909ff973cc2c57ba69f 100644 (file)
@@ -3,6 +3,7 @@
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.FrontendStaticPlugTest do
+  alias Pleroma.Plugs.FrontendStatic
   use Pleroma.Web.ConnCase
 
   @dir "test/tmp/instance_static"
@@ -14,6 +15,18 @@ defmodule Pleroma.Web.FrontendStaticPlugTest do
 
   setup do: clear_config([:instance, :static_dir], @dir)
 
+  test "init will give a static plug config + the frontend type" do
+    opts =
+      [
+        at: "/admin",
+        frontend_type: :admin
+      ]
+      |> FrontendStatic.init()
+
+    assert opts[:at] == ["admin"]
+    assert opts[:frontend_type] == :admin
+  end
+
   test "overrides existing static files", %{conn: conn} do
     name = "pelmora"
     ref = "uguu"
@@ -27,4 +40,18 @@ defmodule Pleroma.Web.FrontendStaticPlugTest do
     index = get(conn, "/")
     assert html_response(index, 200) == "from frontend plug"
   end
+
+  test "overrides existing static files for the `pleroma/admin` path", %{conn: conn} do
+    name = "pelmora"
+    ref = "uguu"
+
+    clear_config([:frontends, :admin], %{"name" => name, "ref" => ref})
+    path = "#{@dir}/frontends/#{name}/#{ref}"
+
+    File.mkdir_p!(path)
+    File.write!("#{path}/index.html", "from frontend plug")
+
+    index = get(conn, "/pleroma/admin/")
+    assert html_response(index, 200) == "from frontend plug"
+  end
 end