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  })