diff --git a/changelog.d/noop-fixes.skip b/changelog.d/noop-fixes.skip new file mode 100644 index 000000000..e69de29bb diff --git a/lib/mix/pleroma.ex b/lib/mix/pleroma.ex index c01cf054d..e7869919c 100644 --- a/lib/mix/pleroma.ex +++ b/lib/mix/pleroma.ex @@ -26,7 +26,11 @@ defmodule Mix.Pleroma do Application.put_env(:phoenix, :serve_endpoints, false, persistent: true) unless System.get_env("DEBUG") do - Logger.remove_backend(:console) + try do + Logger.remove_backend(:console) + catch + :exit, _ -> :ok + end end adapter = Application.get_env(:tesla, :adapter) diff --git a/lib/pleroma/language/translation/provider.ex b/lib/pleroma/language/translation/provider.ex index 533b5355a..4b423247a 100644 --- a/lib/pleroma/language/translation/provider.ex +++ b/lib/pleroma/language/translation/provider.ex @@ -25,7 +25,7 @@ defmodule Pleroma.Language.Translation.Provider do @callback supported_languages(type :: :string | :target) :: {:ok, [String.t()]} | {:error, atom()} - @callback languages_matrix() :: {:ok, Map.t()} | {:error, atom()} + @callback languages_matrix() :: {:ok, map()} | {:error, atom()} @callback name() :: String.t() diff --git a/lib/pleroma/object/fetcher.ex b/lib/pleroma/object/fetcher.ex index b54ef9ce5..c02069ecc 100644 --- a/lib/pleroma/object/fetcher.ex +++ b/lib/pleroma/object/fetcher.ex @@ -19,8 +19,6 @@ defmodule Pleroma.Object.Fetcher do require Logger require Pleroma.Constants - @mix_env Mix.env() - @spec reinject_object(struct(), map()) :: {:ok, Object.t()} | {:error, any()} defp reinject_object(%Object{data: %{}} = object, new_data) do Logger.debug("Reinjecting object #{new_data["id"]}") @@ -178,13 +176,8 @@ defmodule Pleroma.Object.Fetcher do def fetch_and_contain_remote_object_from_id(_id), do: {:error, "id must be a string"} - defp check_crossdomain_redirect(final_host, original_url) - - # Handle the common case in tests where responses don't include URLs - if @mix_env == :test do - defp check_crossdomain_redirect(nil, _) do - {:cross_domain_redirect, false} - end + defp check_crossdomain_redirect(final_host, _original_url) when is_nil(final_host) do + {:cross_domain_redirect, false} end defp check_crossdomain_redirect(final_host, original_url) do diff --git a/lib/pleroma/safe_zip.ex b/lib/pleroma/safe_zip.ex index 25fe434d6..ece18e645 100644 --- a/lib/pleroma/safe_zip.ex +++ b/lib/pleroma/safe_zip.ex @@ -56,10 +56,6 @@ defmodule Pleroma.SafeZip do {_, true} <- {:safe_path, safe_path?(path)} do {:cont, {:ok, maybe_add_file(type, path, fl)}} else - {:get_type, e} -> - {:halt, - {:error, "Couldn't determine file type of ZIP entry at #{path} (#{inspect(e)})"}} - {:type, _} -> {:halt, {:error, "Potentially unsafe file type in ZIP at: #{path}"}} diff --git a/lib/pleroma/web/activity_pub/mrf/remote_report_policy.ex b/lib/pleroma/web/activity_pub/mrf/remote_report_policy.ex index fa0610bf1..8422832dd 100644 --- a/lib/pleroma/web/activity_pub/mrf/remote_report_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/remote_report_policy.ex @@ -15,7 +15,6 @@ defmodule Pleroma.Web.ActivityPub.MRF.RemoteReportPolicy do else {:local, true} -> {:ok, object} {:reject, message} -> {:reject, message} - error -> {:reject, error} end end diff --git a/lib/pleroma/web/api_spec.ex b/lib/pleroma/web/api_spec.ex index e5339097f..3e0ac3704 100644 --- a/lib/pleroma/web/api_spec.ex +++ b/lib/pleroma/web/api_spec.ex @@ -158,6 +158,6 @@ defmodule Pleroma.Web.ApiSpec do } } # discover request/response schemas from path specs - |> OpenApiSpex.resolve_schema_modules() + |> then(&OpenApiSpex.resolve_schema_modules/1) end end diff --git a/lib/pleroma/web/api_spec/scopes/compiler.ex b/lib/pleroma/web/api_spec/scopes/compiler.ex index 162edc9a3..a92cf1199 100644 --- a/lib/pleroma/web/api_spec/scopes/compiler.ex +++ b/lib/pleroma/web/api_spec/scopes/compiler.ex @@ -26,7 +26,11 @@ defmodule Pleroma.Web.ApiSpec.Scopes.Compiler do end def extract_all_scopes do - extract_all_scopes_from(Pleroma.Web.ApiSpec.spec()) + try do + extract_all_scopes_from(Pleroma.Web.ApiSpec.spec()) + catch + _, _ -> [] + end end def extract_all_scopes_from(specs) do diff --git a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex index 10549fb20..32874d464 100644 --- a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex @@ -584,6 +584,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do {:error, error} when error in [:unexpected_response, :quota_exceeded, :too_many_requests] -> render_error(conn, :service_unavailable, "Translation service not available") + + _ -> + render_error(conn, :internal_server_error, "Translation failed") end end diff --git a/test/mix/tasks/pleroma/app_test.exs b/test/mix/tasks/pleroma/app_test.exs index f35447edc..65245eadd 100644 --- a/test/mix/tasks/pleroma/app_test.exs +++ b/test/mix/tasks/pleroma/app_test.exs @@ -42,9 +42,10 @@ defmodule Mix.Tasks.Pleroma.AppTest do test "with errors" do Mix.Tasks.Pleroma.App.run(["create"]) - {:mix_shell, :error, ["Creating failed:"]} - {:mix_shell, :error, ["name: can't be blank"]} - {:mix_shell, :error, ["redirect_uris: can't be blank"]} + + assert_receive {:mix_shell, :error, ["Creating failed:"]} + assert_receive {:mix_shell, :error, ["name: can't be blank"]} + assert_receive {:mix_shell, :error, ["redirect_uris: can't be blank"]} end defp assert_app(name, redirect, scopes) do diff --git a/test/pleroma/emoji/pack_test.exs b/test/pleroma/emoji/pack_test.exs index b458401a7..56b17ac31 100644 --- a/test/pleroma/emoji/pack_test.exs +++ b/test/pleroma/emoji/pack_test.exs @@ -13,6 +13,9 @@ defmodule Pleroma.Emoji.PackTest do ) setup do + # Reload emoji to ensure a clean state + Emoji.reload() + pack_path = Path.join(@emoji_path, "dump_pack") File.mkdir(pack_path) diff --git a/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs b/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs index 61880e2c0..d152a44cd 100644 --- a/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs +++ b/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs @@ -292,10 +292,14 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do User.endorse(user1, user2) User.endorse(user1, user3) - [%{"id" => ^id2}, %{"id" => ^id3}] = + response = conn |> get("/api/v1/pleroma/accounts/#{id1}/endorsements") |> json_response_and_validate_schema(200) + + assert length(response) == 2 + assert Enum.any?(response, fn user -> user["id"] == id2 end) + assert Enum.any?(response, fn user -> user["id"] == id3 end) end test "returns 404 error when specified user is not exist", %{conn: conn} do