github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/testlib/assertions.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package testlib 5 6 import ( 7 "bytes" 8 "encoding/json" 9 "io" 10 "testing" 11 ) 12 13 // AssertLog asserts that a JSON-encoded buffer of logs contains one with the given level and message. 14 func AssertLog(t *testing.T, logs *bytes.Buffer, level, message string) { 15 dec := json.NewDecoder(logs) 16 for { 17 var log struct { 18 Level string 19 Msg string 20 } 21 if err := dec.Decode(&log); err == io.EOF { 22 break 23 } else if err != nil { 24 continue 25 } 26 27 if log.Level == level && log.Msg == message { 28 return 29 } 30 } 31 32 t.Fatalf("failed to find %s log message: %s", level, message) 33 } 34 35 // AssertNoLog asserts that a JSON-encoded buffer of logs does not contains one with the given level and message. 36 func AssertNoLog(t *testing.T, logs *bytes.Buffer, level, message string) { 37 dec := json.NewDecoder(logs) 38 for { 39 var log struct { 40 Level string 41 Msg string 42 } 43 if err := dec.Decode(&log); err == io.EOF { 44 break 45 } else if err != nil { 46 continue 47 } 48 49 if log.Level == level && log.Msg == message { 50 t.Fatalf("found %s log message: %s", level, message) 51 return 52 } 53 } 54 }