add seperate source and dest entries in language listing (#193)
[akkoma] / test / pleroma / web / mastodon_api / controllers / status_controller_test.exs
index e38f5fe58d4e5ba6a9fd99cab27cf3f1008ee357..f76ab3d0d91e9cdb5570f815325e344e8a689699 100644 (file)
@@ -2080,6 +2080,40 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
       oauth_access(["read:statuses"])
     end
 
+    test "listing languages", %{conn: conn} do
+      Tesla.Mock.mock_global(fn
+        %{method: :get, url: "https://api-free.deepl.com/v2/languages?type=source"} ->
+          %Tesla.Env{
+            status: 200,
+            body:
+              Jason.encode!([
+                %{language: "en", name: "English"}
+              ])
+          }
+
+        %{method: :get, url: "https://api-free.deepl.com/v2/languages?type=target"} ->
+          %Tesla.Env{
+            status: 200,
+            body:
+              Jason.encode!([
+                %{language: "ja", name: "Japanese"}
+              ])
+          }
+      end)
+
+      conn =
+        conn
+        |> put_req_header("content-type", "application/json")
+        |> get("/api/v1/akkoma/translation/languages")
+
+      response = json_response_and_validate_schema(conn, 200)
+
+      assert %{
+               "source" => [%{"code" => "en", "name" => "English"}],
+               "target" => [%{"code" => "ja", "name" => "Japanese"}]
+             } = response
+    end
+
     test "should return text and detected language", %{conn: conn} do
       clear_config([:deepl, :tier], :free)