iris/middleware/accesslog/csv_test.go
Gerasimos (Makis) Maropoulos 8aedf6bc32
:)
2021-01-09 05:41:20 +02:00

55 lines
953 B
Go

package accesslog
import (
"bytes"
"testing"
"time"
"github.com/kataras/iris/v12/core/memstore"
)
func TestCSV(t *testing.T) {
buf := new(bytes.Buffer)
ac := New(buf)
ac.RequestBody = false
staticNow, _ := time.Parse(defaultTimeFormat, "1993-01-01 05:00:00")
ac.Clock = TClock(staticNow)
ac.SetFormatter(&CSV{
Header: true,
})
lat, _ := time.ParseDuration("1s")
printFunc := func() {
ac.Print(
nil,
lat,
"",
200,
"GET",
"/",
"::1",
"",
"Index",
573,
81,
nil,
[]memstore.StringEntry{{Key: "sleep", Value: "1s"}},
nil)
}
// print twice, the header should only be written once.
printFunc()
printFunc()
expected := `Timestamp,Latency,Code,Method,Path,IP,Req Values,In,Out
725864400000,1s,200,GET,/,::1,sleep=1s,573,81
725864400000,1s,200,GET,/,::1,sleep=1s,573,81
`
ac.Close()
if got := buf.String(); expected != got {
t.Fatalf("expected:\n%s\n\nbut got:\n%s", expected, got)
}
}