Return empty string in the event of no detected language #535
2 changed files with 19 additions and 3 deletions
|
@ -39,9 +39,9 @@ def translate(string, from_language, to_language) do
|
|||
detected =
|
||||
if Map.has_key?(body, "detectedLanguage") do
|
||||
get_in(body, ["detectedLanguage", "language"])
|
||||
else
|
||||
from_language
|
||||
end
|
||||
else
|
||||
from_language || ""
|
||||
end
|
||||
|
||||
{:ok, detected, translated}
|
||||
else
|
||||
|
|
|
@ -133,5 +133,21 @@ test "should gracefully handle an unsupported language" do
|
|||
assert {:error, "libre_translate: request failed (code 400)"} =
|
||||
LibreTranslate.translate("ギュギュ握りつぶしちゃうぞ", nil, "zoop")
|
||||
end
|
||||
|
||||
test "should work when no detected language is received" do
|
||||
Tesla.Mock.mock(fn
|
||||
%{method: :post, url: "http://libre.translate/translate"} ->
|
||||
%Tesla.Env{
|
||||
status: 200,
|
||||
body:
|
||||
Jason.encode!(%{
|
||||
translatedText: "I will crush you"
|
||||
})
|
||||
}
|
||||
end)
|
||||
|
||||
assert {:ok, "", "I will crush you"} =
|
||||
LibreTranslate.translate("ギュギュ握りつぶしちゃうぞ", nil, "en")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue