- supported_locales/0 returns the declared ~w(en es de fr) list. - put_locale/1 sets the Gettext process locale for each supported value and raises FunctionClauseError for unsupported input. 3 tests, async:false because they mutate process-wide Gettext state.
33 lines
847 B
Elixir
33 lines
847 B
Elixir
defmodule AprsmeWeb.GettextTest do
|
|
use ExUnit.Case, async: false
|
|
|
|
alias AprsmeWeb.Gettext
|
|
|
|
setup do
|
|
original = Elixir.Gettext.get_locale(Gettext)
|
|
on_exit(fn -> Elixir.Gettext.put_locale(Gettext, original) end)
|
|
:ok
|
|
end
|
|
|
|
describe "supported_locales/0" do
|
|
test "returns the declared list" do
|
|
assert Gettext.supported_locales() == ~w(en es de fr)
|
|
end
|
|
end
|
|
|
|
describe "put_locale/1" do
|
|
test "sets the process-wide Gettext locale for supported values" do
|
|
Gettext.put_locale("es")
|
|
assert Elixir.Gettext.get_locale(Gettext) == "es"
|
|
|
|
Gettext.put_locale("fr")
|
|
assert Elixir.Gettext.get_locale(Gettext) == "fr"
|
|
end
|
|
|
|
test "raises FunctionClauseError for unsupported locales" do
|
|
assert_raise FunctionClauseError, fn ->
|
|
Gettext.put_locale("zz")
|
|
end
|
|
end
|
|
end
|
|
end
|