package formatters import ( "fmt" "os" "slices" "testing" "codeberg.org/danjones000/my-log/config" "github.com/nalgeon/be" ) func TestKinds(t *testing.T) { kinds := Kinds() for _, kind := range []string{"plain", "json", "zero"} { be.True(t, slices.Contains(kinds, kind)) } } func TestNewUnsupported(t *testing.T) { f, err := New("nope") be.Equal(t, f, nil) be.Err(t, err) } func TestNewCantGetConfig(t *testing.T) { f, _ := os.CreateTemp("", "test") oldConf := config.ConfigPath config.ConfigPath = f.Name() defer f.Close() defer func() { config.ConfigPath = oldConf }() fmt.Fprint(f, `{"not":"toml"}`) form, err := New("plain") be.Equal(t, form, nil) be.Err(t, err) form, err = Preferred() be.Equal(t, form, nil) be.Err(t, err) } func TestPreferred(t *testing.T) { form, err := Preferred() be.Err(t, err, nil) be.True(t, form != nil) }