From 18d7ba1f2c516a68be5a2d9eba52de22f3cacf19 Mon Sep 17 00:00:00 2001 From: Codex Date: Thu, 2 Apr 2026 02:17:51 +0000 Subject: [PATCH] feat(i18n): add package-level clear handlers Co-Authored-By: Virgil --- i18n.go | 7 +++++++ i18n_test.go | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/i18n.go b/i18n.go index bbd3e8b..14ae464 100644 --- a/i18n.go +++ b/i18n.go @@ -122,6 +122,13 @@ func PrependHandler(handlers ...KeyHandler) { } } +// ClearHandlers removes all handlers from the default service. +func ClearHandlers() { + if svc := Default(); svc != nil { + svc.ClearHandlers() + } +} + func executeIntentTemplate(tmplStr string, data templateData) string { if tmplStr == "" { return "" diff --git a/i18n_test.go b/i18n_test.go index d9a8494..295ed7a 100644 --- a/i18n_test.go +++ b/i18n_test.go @@ -250,6 +250,23 @@ func TestPrependHandler_Good_Variadic(t *testing.T) { assert.IsType(t, ProgressHandler{}, handlers[1]) } +func TestClearHandlers_Good(t *testing.T) { + svc, err := New() + require.NoError(t, err) + _ = Init() + prev := Default() + SetDefault(svc) + t.Cleanup(func() { + SetDefault(prev) + }) + + AddHandler(LabelHandler{}) + require.NotEmpty(t, svc.Handlers()) + + ClearHandlers() + assert.Empty(t, svc.Handlers()) +} + // --- executeIntentTemplate --- func TestExecuteIntentTemplate_Good(t *testing.T) { -- 2.45.3