@@ -7,6 +7,7 @@ package otelzap
7
7
8
8
import (
9
9
"errors"
10
+ "fmt"
10
11
"testing"
11
12
"time"
12
13
@@ -55,6 +56,7 @@ func TestObjectEncoder(t *testing.T) {
55
56
arr .AppendBool (true )
56
57
return nil
57
58
})), "Expected AddArray to succeed." )
59
+
58
60
},
59
61
expected : []interface {}{true , false , true },
60
62
},
@@ -65,6 +67,13 @@ func TestObjectEncoder(t *testing.T) {
65
67
},
66
68
expected : []interface {}{wantTurducken , wantTurducken },
67
69
},
70
+ {
71
+ desc : "AddArray-with AppendArray" ,
72
+ f : func (e zapcore.ObjectEncoder ) {
73
+ assert .NoError (t , e .AddArray ("k" , number (2 )), "Expected AddArray to succeed." )
74
+ },
75
+ expected : []interface {}{[]interface {}{"1" }, []interface {}{"2" }},
76
+ },
68
77
{
69
78
desc : "AddReflected" ,
70
79
f : func (e zapcore.ObjectEncoder ) {
@@ -361,6 +370,23 @@ func (t turduckens) MarshalLogArray(enc zapcore.ArrayEncoder) error {
361
370
return err
362
371
}
363
372
373
+ type number int
374
+
375
+ func (t number ) MarshalLogArray (enc zapcore.ArrayEncoder ) error {
376
+ var err error
377
+ for i := 0 ; i < int (t ); i ++ {
378
+ err = errors .Join (err , enc .AppendArray (numberString (fmt .Sprint (i + 1 ))))
379
+ }
380
+ return err
381
+ }
382
+
383
+ type numberString string
384
+
385
+ func (t numberString ) MarshalLogArray (enc zapcore.ArrayEncoder ) error {
386
+ enc .AppendString (string (t ))
387
+ return nil
388
+ }
389
+
364
390
type loggable struct { bool }
365
391
366
392
func (l loggable ) MarshalLogObject (enc zapcore.ObjectEncoder ) error {
0 commit comments