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  }