67 lines
1.4 KiB
Go
67 lines
1.4 KiB
Go
package formatters
|
|
|
|
import (
|
|
//"bufio"
|
|
//"bytes"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
"codeberg.org/danjones000/my-log/models"
|
|
//"codeberg.org/danjones000/my-log/tools"
|
|
"github.com/stretchr/testify/assert"
|
|
//"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestJsonName(t *testing.T) {
|
|
f, _ := New("json")
|
|
assert.Equal(t, "json", f.Name())
|
|
}
|
|
|
|
func TestJsonMeta(t *testing.T) {
|
|
f, _ := New("json")
|
|
m := models.Meta{"foo", 42}
|
|
exp := `{"foo":42}`
|
|
o, err := f.Meta(m)
|
|
assert.NoError(t, err)
|
|
assert.JSONEq(t, exp, string(o))
|
|
}
|
|
|
|
func TestJsonEntry(t *testing.T) {
|
|
when := time.Now()
|
|
f, _ := New("json")
|
|
m := models.Meta{"foo", 42}
|
|
e := models.Entry{
|
|
Title: "Homer",
|
|
Date: when,
|
|
Fields: []models.Meta{m},
|
|
}
|
|
exp := fmt.Sprintf(`{"title":"%s","date":"%s","foo":42}`, e.Title, when.Format(time.RFC3339))
|
|
o, err := f.Entry(e)
|
|
assert.NoError(t, err)
|
|
assert.JSONEq(t, exp, string(o))
|
|
}
|
|
|
|
func TestJsonLog(t *testing.T) {
|
|
when := time.Now()
|
|
f, _ := New("json")
|
|
m := models.Meta{"foo", 42}
|
|
e := models.Entry{
|
|
Title: "Homer",
|
|
Date: when,
|
|
Fields: []models.Meta{m},
|
|
}
|
|
l := models.Log{"stuff", []models.Entry{e}}
|
|
exp := fmt.Sprintf(`{"%s":[{"title":"%s","date":"%s","foo":42}]}`, l.Name, e.Title, when.Format(time.RFC3339))
|
|
o, err := f.Log(l)
|
|
assert.NoError(t, err)
|
|
assert.JSONEq(t, exp, string(o))
|
|
}
|
|
|
|
func TestJsonNoLogs(t *testing.T) {
|
|
f, _ := New("json")
|
|
o, err := f.Logs([]models.Log{})
|
|
var exp []byte
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, exp, o)
|
|
}
|