FrontendStatic: Work correctly for other frontend types.

This commit is contained in:
lain 2020-07-29 13:02:48 +02:00
parent 93dbba9b8a
commit 6a25f72a75
2 changed files with 28 additions and 0 deletions

View File

@ -30,6 +30,7 @@ defmodule Pleroma.Plugs.FrontendStatic do
opts opts
|> Keyword.put(:from, "__unconfigured_frontend_static_plug") |> Keyword.put(:from, "__unconfigured_frontend_static_plug")
|> Plug.Static.init() |> Plug.Static.init()
|> Map.put(:frontend_type, opts[:frontend_type])
end end
def call(conn, opts) do def call(conn, opts) do

View File

@ -3,6 +3,7 @@
# SPDX-License-Identifier: AGPL-3.0-only # SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.FrontendStaticPlugTest do defmodule Pleroma.Web.FrontendStaticPlugTest do
alias Pleroma.Plugs.FrontendStatic
use Pleroma.Web.ConnCase use Pleroma.Web.ConnCase
@dir "test/tmp/instance_static" @dir "test/tmp/instance_static"
@ -14,6 +15,18 @@ defmodule Pleroma.Web.FrontendStaticPlugTest do
setup do: clear_config([:instance, :static_dir], @dir) 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 test "overrides existing static files", %{conn: conn} do
name = "pelmora" name = "pelmora"
ref = "uguu" ref = "uguu"
@ -27,4 +40,18 @@ defmodule Pleroma.Web.FrontendStaticPlugTest do
index = get(conn, "/") index = get(conn, "/")
assert html_response(index, 200) == "from frontend plug" assert html_response(index, 200) == "from frontend plug"
end 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 end