diff options
author | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2021-08-14 18:42:12 +0000 |
---|---|---|
committer | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2021-08-14 18:42:12 +0000 |
commit | 84ec0fbeaadc8bdbce256212258a932530088346 (patch) | |
tree | fbcb3e06df9602b83437ac82844e25e6f8b7b4d9 | |
parent | 2d9f803dc6ad959c27235594a6d685f055a50d7b (diff) | |
parent | f9bafc17fbfa21991d7be80b028b83d56b804961 (diff) | |
download | pleroma-84ec0fbeaadc8bdbce256212258a932530088346.tar.gz pleroma-84ec0fbeaadc8bdbce256212258a932530088346.zip |
Merge branch 'show_frontends_also_when_no_static_frontends_folder_is_created_yet' into 'develop'
List available frontends also when no static/frontends folder is present yet
Closes admin-fe#201
See merge request pleroma/pleroma!3510
-rw-r--r-- | lib/pleroma/web/admin_api/controllers/frontend_controller.ex | 8 | ||||
-rw-r--r-- | test/pleroma/web/admin_api/controllers/frontend_controller_test.exs | 14 |
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/pleroma/web/admin_api/controllers/frontend_controller.ex b/lib/pleroma/web/admin_api/controllers/frontend_controller.ex index 722f51bd2..442e6a5a0 100644 --- a/lib/pleroma/web/admin_api/controllers/frontend_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/frontend_controller.ex @@ -35,6 +35,12 @@ defmodule Pleroma.Web.AdminAPI.FrontendController do end defp installed do - File.ls!(Pleroma.Frontend.dir()) + frontend_directory = Pleroma.Frontend.dir() + + if File.exists?(frontend_directory) do + File.ls!(frontend_directory) + else + [] + end end end diff --git a/test/pleroma/web/admin_api/controllers/frontend_controller_test.exs b/test/pleroma/web/admin_api/controllers/frontend_controller_test.exs index bc827cc12..200682ba9 100644 --- a/test/pleroma/web/admin_api/controllers/frontend_controller_test.exs +++ b/test/pleroma/web/admin_api/controllers/frontend_controller_test.exs @@ -42,6 +42,20 @@ defmodule Pleroma.Web.AdminAPI.FrontendControllerTest do refute Enum.any?(response, fn frontend -> frontend["installed"] == true end) end + + test "it lists available frontends when no frontend folder was created yet", %{conn: conn} do + File.rm_rf(@dir) + + response = + conn + |> get("/api/pleroma/admin/frontends") + |> json_response_and_validate_schema(:ok) + + assert Enum.map(response, & &1["name"]) == + Enum.map(Config.get([:frontends, :available]), fn {_, map} -> map["name"] end) + + refute Enum.any?(response, fn frontend -> frontend["installed"] == true end) + end end describe "POST /api/pleroma/admin/frontends/install" do |