From 20d463794bda40a6d7e5922ae0cf8f0f240a9cec Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Thu, 23 Apr 2026 14:54:16 -0500 Subject: [PATCH] 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. --- test/aprsme_web/gettext_test.exs | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 test/aprsme_web/gettext_test.exs diff --git a/test/aprsme_web/gettext_test.exs b/test/aprsme_web/gettext_test.exs new file mode 100644 index 0000000..5c16ddb --- /dev/null +++ b/test/aprsme_web/gettext_test.exs @@ -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