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