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) {