github.com/shogo82148/goa-v1@v1.6.2/logging/logrus/adapter_test.go (about) 1 package goalogrus_test 2 3 import ( 4 "bytes" 5 "context" 6 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/gomega" 9 "github.com/shogo82148/goa-v1" 10 goalogrus "github.com/shogo82148/goa-v1/logging/logrus" 11 "github.com/sirupsen/logrus" 12 ) 13 14 var _ = Describe("goalogrus", func() { 15 var logger *logrus.Logger 16 var adapter goa.LogAdapter 17 var buf bytes.Buffer 18 19 BeforeEach(func() { 20 logger = logrus.New() 21 logger.Out = &buf 22 adapter = goalogrus.New(logger) 23 }) 24 25 It("adapts info messages", func() { 26 msg := "msg" 27 adapter.Info(msg) 28 Ω(buf.String()).Should(ContainSubstring(msg)) 29 }) 30 31 It("adapts warn messages", func() { 32 adapter := adapter.(goa.WarningLogAdapter) 33 msg := "msg" 34 adapter.Warn(msg) 35 Ω(buf.String()).Should(ContainSubstring(msg)) 36 }) 37 38 It("adapts error messages", func() { 39 msg := "msg" 40 adapter.Error(msg) 41 Ω(buf.String()).Should(ContainSubstring(msg)) 42 }) 43 }) 44 45 var _ = Describe("FromEntry", func() { 46 var entry *logrus.Entry 47 var adapter goa.LogAdapter 48 var buf bytes.Buffer 49 50 BeforeEach(func() { 51 logger := logrus.New() 52 logger.Out = &buf 53 entry = logrus.NewEntry(logger) 54 adapter = goalogrus.FromEntry(entry) 55 }) 56 57 It("creates an adapter that logs", func() { 58 msg := "msg" 59 adapter.Info(msg) 60 Ω(buf.String()).Should(ContainSubstring(msg)) 61 }) 62 63 Context("Entry", func() { 64 var ctx context.Context 65 66 BeforeEach(func() { 67 ctx = goa.WithLogger(context.Background(), adapter) 68 }) 69 70 It("extracts the log entry", func() { 71 Ω(goalogrus.Entry(ctx)).Should(Equal(entry)) 72 }) 73 }) 74 })