diff --git a/config/description.exs b/config/description.exs index 3abcc6266..52f7d2017 100644 --- a/config/description.exs +++ b/config/description.exs @@ -238,7 +238,8 @@ config :pleroma, :config_description, [ Swoosh.Adapters.AmazonSES, Swoosh.Adapters.Dyn, Swoosh.Adapters.SocketLabs, - Swoosh.Adapters.Gmail + Swoosh.Adapters.Gmail, + Swoosh.Adapters.Local ] }, %{ @@ -449,6 +450,26 @@ config :pleroma, :config_description, [ } ] }, + %{ + group: :swoosh, + type: :group, + description: "`Swoosh.Adapters.Local` adapter specific settings", + children: [ + %{ + group: {:subgroup, Swoosh.Adapters.Local}, + key: :serve_mailbox, + type: :boolean, + description: "Run the preview server together as part of your app" + }, + %{ + group: {:subgroup, Swoosh.Adapters.Local}, + key: :preview_port, + type: :integer, + description: "The preview server port", + suggestions: [4001] + } + ] + }, %{ group: :pleroma, key: :uri_schemes, diff --git a/lib/pleroma/docs/generator.ex b/lib/pleroma/docs/generator.ex index b57e47e8b..6b12dcdd9 100644 --- a/lib/pleroma/docs/generator.ex +++ b/lib/pleroma/docs/generator.ex @@ -58,15 +58,23 @@ defmodule Pleroma.Docs.Generator do entity |> Map.put(:suggestions, format_suggestions(suggestions)) |> format_key() + |> format_group() |> format_children() end defp format_child(entity) do entity |> format_key() + |> format_group() |> format_children() end + defp format_group(%{group: group} = entity) do + Map.put(entity, :group, format_suggestion(group)) + end + + defp format_group(entity), do: entity + defp atom_to_string(entity) when is_binary(entity), do: entity defp atom_to_string(entity) when is_atom(entity), do: inspect(entity) diff --git a/test/docs/generator_test.exs b/test/docs/generator_test.exs index 42e7c32c8..0106809c2 100644 --- a/test/docs/generator_test.exs +++ b/test/docs/generator_test.exs @@ -207,5 +207,12 @@ defmodule Pleroma.Docs.GeneratorTest do child = Enum.at(children, 7) assert child[:key] == "application/xml" end + + test "subgroup with module name" do + [%{children: children} | _] = Generator.convert_to_strings(@descriptions) + + %{group: subgroup} = Enum.at(children, 6) + assert subgroup == {":subgroup", "Swoosh.Adapters.SMTP"} + end end end