github.com/jaylevin/jenkins-library@v1.230.4/pkg/log/collectorHook_test.go (about) 1 package log 2 3 import ( 4 "reflect" 5 "testing" 6 "time" 7 8 "github.com/sirupsen/logrus" 9 ) 10 11 func TestCollectorHook_Fire(t *testing.T) { 12 type fields struct { 13 CorrelationID string 14 Messages []Message 15 } 16 type args struct { 17 entry *logrus.Entry 18 } 19 tests := []struct { 20 name string 21 fields fields 22 args args 23 wantErr bool 24 }{ 25 {"Test Fire", 26 fields{ 27 CorrelationID: "123", 28 Messages: []Message{}, 29 }, 30 args{entry: &logrus.Entry{ 31 Time: time.Now(), 32 Data: logrus.Fields{"test": "test value"}, 33 Message: "Test Message", 34 }, 35 }, 36 false, 37 }, 38 } 39 for _, tt := range tests { 40 t.Run(tt.name, func(t *testing.T) { 41 initialMessageLength := len(tt.fields.Messages) 42 f := &CollectorHook{ 43 CorrelationID: tt.fields.CorrelationID, 44 Messages: tt.fields.Messages, 45 } 46 // Check if hook was triggered 47 if err := f.Fire(tt.args.entry); (err != nil) != tt.wantErr { 48 t.Errorf("Fire() error = %v, wantErr %v", err, tt.wantErr) 49 } 50 51 // Check if the message was successfully added 52 if len(f.Messages) != initialMessageLength+1 { 53 t.Errorf("Fire() error - Messages not added to array - Message count %v", len(f.Messages)) 54 } 55 }) 56 } 57 } 58 func TestCollectorHook_Levels(t *testing.T) { 59 type fields struct { 60 CorrelationID string 61 Messages []Message 62 } 63 tests := []struct { 64 name string 65 fields fields 66 want []logrus.Level 67 }{ 68 {"Test Levels", 69 fields{ 70 CorrelationID: "123", 71 Messages: []Message{ 72 { 73 Time: time.Now(), 74 Level: logrus.DebugLevel, 75 Message: "Test Message", 76 }, 77 }, 78 }, 79 []logrus.Level{logrus.InfoLevel, logrus.DebugLevel, logrus.WarnLevel, logrus.ErrorLevel, logrus.PanicLevel, logrus.FatalLevel}, 80 }, 81 } 82 for _, tt := range tests { 83 t.Run(tt.name, func(t *testing.T) { 84 f := &CollectorHook{ 85 CorrelationID: tt.fields.CorrelationID, 86 Messages: tt.fields.Messages, 87 } 88 if got := f.Levels(); !reflect.DeepEqual(got, tt.want) { 89 t.Errorf("Levels() = %v, want %v", got, tt.want) 90 } 91 }) 92 } 93 }