package formatters import ( "context" "slices" "testing" "codeberg.org/danjones000/my-log/config" "github.com/nalgeon/be" "github.com/spf13/viper" ) func TestKinds(t *testing.T) { kinds := Kinds() for _, kind := range []string{"plain", "json", "zero"} { be.True(t, slices.Contains(kinds, kind)) } } func setupNewTest(t *testing.T) context.Context { t.Helper() v := viper.New() v.SetConfigType("toml") v.Set("formatters.preferred", "plain") v.Set("formatters.json.pretty_print", false) return config.AddToContext(t.Context(), v) } func TestNewUnsupported(t *testing.T) { ctx := setupNewTest(t) f, err := New(ctx, "nope") be.Equal(t, f, nil) be.Err(t, err) } func TestPreferred(t *testing.T) { ctx := setupNewTest(t) form, err := Preferred(ctx) be.Err(t, err, nil) be.True(t, form != nil) }