diff --git a/lib/pleroma/language/language_detector.ex b/lib/pleroma/language/language_detector.ex
index 3901a8b90..b19eb4571 100644
--- a/lib/pleroma/language/language_detector.ex
+++ b/lib/pleroma/language/language_detector.ex
@@ -11,7 +11,7 @@ defmodule Pleroma.Language.LanguageDetector do
if provider do
provider.missing_dependencies()
else
- nil
+ []
end
end
@@ -28,7 +28,7 @@ defmodule Pleroma.Language.LanguageDetector do
end
end
- defp get_provider() do
+ defp get_provider do
Pleroma.Config.get([__MODULE__, :provider])
end
end
diff --git a/test/pleroma/language/language_detector_test.ex b/test/pleroma/language/language_detector_test.ex
new file mode 100644
index 000000000..4d9af33bf
--- /dev/null
+++ b/test/pleroma/language/language_detector_test.ex
@@ -0,0 +1,31 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2022 Pleroma Authors
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Language.LanguageDetectorTest do
+ use Pleroma.Web.ConnCase
+
+ alias Pleroma.Language.LanguageDetector
+
+ setup do: clear_config([Pleroma.Language.LanguageDetector, :provider], LanguageDetectorMock)
+
+ test "it detects text language" do
+ detected_language = LanguageDetector.detect("Je viens d'atterrir en Tchéquie.")
+
+ assert detected_language == "fr"
+ end
+
+ test "it returns nil if text is not long enough" do
+ detected_language = LanguageDetector.detect("it returns nil")
+
+ assert detected_language == nil
+ end
+
+ test "it returns nil if no provider specified" do
+ clear_config([Pleroma.Language.LanguageDetector, :provider], nil)
+
+ detected_language = LanguageDetector.detect("this should also return nil")
+
+ assert detected_language == nil
+ end
+end
diff --git a/test/support/language_detector_mock.ex b/test/support/language_detector_mock.ex
new file mode 100644
index 000000000..2a85dcd63
--- /dev/null
+++ b/test/support/language_detector_mock.ex
@@ -0,0 +1,18 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2022 Pleroma Authors
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule LanguageDetectorMock do
+ alias Pleroma.Language.LanguageDetector.Provider
+
+ @behaviour Provider
+
+ @impl Provider
+ def missing_dependencies, do: []
+
+ @impl Provider
+ def configured?, do: true
+
+ @impl Provider
+ def detect(text), do: "fr"
+end