test: cover AprsmeWeb.Gettext helpers

- 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.
This commit is contained in:
Graham McIntire 2026-04-23 14:54:16 -05:00
parent 2b43e5b2a8
commit 20d463794b
No known key found for this signature in database
GPG key ID: F4ABF488E6029E59

View file

@ -0,0 +1,33 @@
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