github.com/apex/up@v1.7.1/internal/logs/writer/writer_test.go (about) 1 package writer 2 3 import ( 4 "bytes" 5 "io" 6 "strings" 7 "testing" 8 "time" 9 10 "github.com/apex/log" 11 "github.com/apex/log/handlers/json" 12 "github.com/tj/assert" 13 ) 14 15 func init() { 16 log.Now = func() time.Time { 17 return time.Unix(0, 0).UTC() 18 } 19 } 20 21 func TestWriter_plainTextFlat(t *testing.T) { 22 var buf bytes.Buffer 23 24 log.SetHandler(json.New(&buf)) 25 26 w := New(log.InfoLevel, log.Log) 27 28 input := `GET / 29 GET /account 30 GET /login 31 POST / 32 POST /logout 33 ` 34 35 _, err := io.Copy(w, strings.NewReader(input)) 36 assert.NoError(t, err, "copy") 37 38 expected := `{"fields":{},"level":"info","timestamp":"1970-01-01T00:00:00Z","message":"GET /"} 39 {"fields":{},"level":"info","timestamp":"1970-01-01T00:00:00Z","message":"GET /account"} 40 {"fields":{},"level":"info","timestamp":"1970-01-01T00:00:00Z","message":"GET /login"} 41 {"fields":{},"level":"info","timestamp":"1970-01-01T00:00:00Z","message":"POST /"} 42 {"fields":{},"level":"info","timestamp":"1970-01-01T00:00:00Z","message":"POST /logout"} 43 ` 44 45 assert.Equal(t, expected, buf.String()) 46 } 47 48 func TestWriter_json(t *testing.T) { 49 var buf bytes.Buffer 50 51 log.SetHandler(json.New(&buf)) 52 53 w := New(log.InfoLevel, log.Log) 54 55 input := `{ "level": "info", "message": "request", "fields": { "method": "GET", "path": "/" } } 56 { "level": "info", "message": "request", "fields": { "method": "GET", "path": "/login" } } 57 { "level": "info", "message": "request", "fields": { "method": "POST", "path": "/login" } } 58 ` 59 60 _, err := io.Copy(w, strings.NewReader(input)) 61 assert.NoError(t, err, "copy") 62 63 expected := `{"fields":{"method":"GET","path":"/"},"level":"info","timestamp":"1970-01-01T00:00:00Z","message":"request"} 64 {"fields":{"method":"GET","path":"/login"},"level":"info","timestamp":"1970-01-01T00:00:00Z","message":"request"} 65 {"fields":{"method":"POST","path":"/login"},"level":"info","timestamp":"1970-01-01T00:00:00Z","message":"request"} 66 ` 67 68 assert.Equal(t, expected, buf.String()) 69 }