✨ Add null formatter
This commit is contained in:
parent
79fa957d02
commit
632c7143f1
5 changed files with 83 additions and 2 deletions
|
|
@ -67,7 +67,10 @@ var dropCmd = &cobra.Command{
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Fprintf(cmd.OutOrStdout(), "%s\n", out)
|
||||
if len(out) > 0 && out[len(out)-1] != 10 {
|
||||
out = append(out, 10)
|
||||
}
|
||||
fmt.Fprintf(cmd.OutOrStdout(), "%s", out)
|
||||
|
||||
return nil
|
||||
},
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ type formatMaker func(config.Formatters) (Formatter, error)
|
|||
var formatterMap = map[string]formatMaker{
|
||||
"plain": newPlain,
|
||||
"json": newJson,
|
||||
"zero": newNull,
|
||||
}
|
||||
|
||||
func Preferred() (f Formatter, err error) {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
)
|
||||
|
||||
func TestKinds(t *testing.T) {
|
||||
assert.ElementsMatch(t, []string{"plain", "json"}, Kinds())
|
||||
assert.ElementsMatch(t, []string{"plain", "json", "zero"}, Kinds())
|
||||
}
|
||||
|
||||
func TestNewUnsupported(t *testing.T) {
|
||||
|
|
|
|||
32
formatters/null.go
Normal file
32
formatters/null.go
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
package formatters
|
||||
|
||||
import (
|
||||
"codeberg.org/danjones000/my-log/config"
|
||||
"codeberg.org/danjones000/my-log/models"
|
||||
)
|
||||
|
||||
func newNull(ff config.Formatters) (Formatter, error) {
|
||||
return &Null{}, nil
|
||||
}
|
||||
|
||||
type Null struct{}
|
||||
|
||||
func (n *Null) Name() string {
|
||||
return "zero"
|
||||
}
|
||||
|
||||
func (n *Null) Meta(m models.Meta) (o []byte, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (n *Null) Entry(e models.Entry) (o []byte, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (n *Null) Log(l models.Log) (o []byte, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (n *Null) Logs(logs []models.Log) (out []byte, err error) {
|
||||
return
|
||||
}
|
||||
45
formatters/null_test.go
Normal file
45
formatters/null_test.go
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package formatters
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"codeberg.org/danjones000/my-log/models"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var empty []byte
|
||||
|
||||
func TestNullName(t *testing.T) {
|
||||
f, err := New("zero")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "zero", f.Name())
|
||||
}
|
||||
|
||||
func TestNullMeta(t *testing.T) {
|
||||
f, _ := New("zero")
|
||||
o, err := f.Meta(models.Meta{"foo", 42})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, empty, o)
|
||||
}
|
||||
|
||||
func TestNullEntry(t *testing.T) {
|
||||
f, _ := New("zero")
|
||||
o, err := f.Entry(models.Entry{"title", time.Now(), models.Metas{}})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, empty, o)
|
||||
}
|
||||
|
||||
func TestNullLog(t *testing.T) {
|
||||
f, _ := New("zero")
|
||||
o, err := f.Log(models.Log{"jim", []models.Entry{{"title", time.Now(), models.Metas{}}}})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, empty, o)
|
||||
}
|
||||
|
||||
func TestNullLogs(t *testing.T) {
|
||||
f, _ := New("zero")
|
||||
o, err := f.Logs([]models.Log{{"jim", []models.Entry{{"title", time.Now(), models.Metas{}}}}})
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, empty, o)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue