github.com/fredbi/git-chglog@v0.0.0-20190706071416-d35c598eac81/cmd/git-chglog/logger_test.go (about) 1 package main 2 3 import ( 4 "bytes" 5 "fmt" 6 "testing" 7 8 "github.com/fatih/color" 9 "github.com/stretchr/testify/assert" 10 emoji "gopkg.in/kyokomi/emoji.v1" 11 ) 12 13 func TestLoggerLogSilent(t *testing.T) { 14 color.NoColor = false 15 assert := assert.New(t) 16 17 stdout := &bytes.Buffer{} 18 stderr := &bytes.Buffer{} 19 logger := NewLogger(stdout, stderr, true, false) 20 logger.Log(":+1:Hello, World! :)") 21 assert.Equal("", stdout.String()) 22 } 23 24 func TestLoggerLog(t *testing.T) { 25 color.NoColor = false 26 assert := assert.New(t) 27 28 stdout := &bytes.Buffer{} 29 stderr := &bytes.Buffer{} 30 logger := NewLogger(stdout, stderr, false, false) 31 logger.Log(":+1:Hello, World! :)") 32 assert.Equal(emoji.Sprint(":+1:Hello, World! :)\n"), stdout.String()) 33 } 34 35 func TestLoggerLogNoEmoji(t *testing.T) { 36 color.NoColor = false 37 assert := assert.New(t) 38 39 stdout := &bytes.Buffer{} 40 stderr := &bytes.Buffer{} 41 logger := NewLogger(stdout, stderr, false, true) 42 logger.Log(":+1:Hello, World! :)") 43 assert.Equal(fmt.Sprint("Hello, World! :)\n"), stdout.String()) 44 } 45 46 func TestLoggerError(t *testing.T) { 47 color.NoColor = false 48 assert := assert.New(t) 49 50 prefix := color.New(color.FgWhite, color.BgRed, color.Bold).SprintFunc() 51 52 // Basic 53 stdout := &bytes.Buffer{} 54 stderr := &bytes.Buffer{} 55 logger := NewLogger(stdout, stderr, false, false) 56 logger.Error("This is error message!! :dog:") 57 assert.Equal("", stdout.String()) 58 assert.Equal(emoji.Sprint(fmt.Sprintf("%s %s\n", prefix(" ERROR "), color.RedString("This is error message!! :dog:"))), stderr.String()) 59 60 // Silent 61 stdout = &bytes.Buffer{} 62 stderr = &bytes.Buffer{} 63 logger = NewLogger(stdout, stderr, true, false) 64 logger.Error("Foo") 65 assert.Equal("", stdout.String()) 66 assert.NotEqual("", stderr.String()) 67 68 // NoEmoji 69 stdout = &bytes.Buffer{} 70 stderr = &bytes.Buffer{} 71 logger = NewLogger(stdout, stderr, true, true) 72 logger.Error("HOGE :hand:") 73 assert.Equal("", stdout.String()) 74 assert.NotContains(stderr.String(), emoji.Sprint(":hand:")) 75 }