import ( "bytes" "golang.org/x/net/context" "github.com/go-kit/kit/log" "github.com/goadesign/goa" "github.com/goadesign/goa/logging/kit" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("New", func() { var buf bytes.Buffer var logger log.Logger var adapter goa.LogAdapter BeforeEach(func() { logger = log.NewLogfmtLogger(&buf) adapter = goakit.New(logger) }) It("creates an adapter that logs", func() { msg := "msg" adapter.Info(msg) Ω(buf.String()).Should(Equal("lvl=info msg=" + msg + "\n")) }) }) var _ = Describe("FromContext", func() { var buf bytes.Buffer
Ω(func() { goa.LogInfo(context.Background(), "foo", "bar") }).ShouldNot(Panic()) }) }) }) var _ = Describe("Error", func() { Context("with a nil Log", func() { It("doesn't log and doesn't crash", func() { Ω(func() { goa.LogError(context.Background(), "foo", "bar") }).ShouldNot(Panic()) }) }) }) var _ = Describe("LogAdapter", func() { Context("with a valid Log", func() { var logger goa.LogAdapter const msg = "message" data := []interface{}{"data", "foo"} var out bytes.Buffer BeforeEach(func() { stdlogger := log.New(&out, "", log.LstdFlags) logger = goa.NewLogger(stdlogger) }) It("Info logs", func() { logger.Info(msg, data...) Ω(out.String()).Should(ContainSubstring(msg + " data=foo")) })