@@ -45,12 +45,17 @@ func TestField(t *testing.T) {
4545 {field : logger .Complex64 ("Complex64 field" , 123 ), expectedValue : complex64 (123 ), expectedType : logger .Complex64Type },
4646 {field : logger .Complex128 ("Complex128 field" , 123 ), expectedValue : complex128 (123 ), expectedType : logger .Complex128Type },
4747 {field : logger .String ("String field" , "my_value" ), expectedValue : "my_value" , expectedType : logger .StringType },
48+ {field : logger .Binary ("Binary field null" , nil ), expectedValue : []byte (nil ), expectedType : logger .BinaryType },
4849 {field : logger .Binary ("Binary field" , []byte ("my_value" )), expectedValue : []byte ("my_value" ), expectedType : logger .BinaryType },
50+ {field : logger .ByteString ("ByteString field null" , nil ), expectedValue : []byte (nil ), expectedType : logger .ByteStringType },
4951 {field : logger .ByteString ("ByteString field" , []byte ("my_value" )), expectedValue : []byte ("my_value" ), expectedType : logger .ByteStringType },
52+ {field : logger .Error ("Error nil field" , nil ), expectedValue : nil , expectedType : logger .ErrorType },
5053 {field : logger .Error ("Error field" , err ), expectedValue : err , expectedType : logger .ErrorType },
5154 {field : logger .Time ("Time field" , now ), expectedValue : now , expectedType : logger .TimeType },
5255 {field : logger .Duration ("Duration field" , 5 * time .Second ), expectedValue : 5 * time .Second , expectedType : logger .DurationType },
56+ {field : logger .Stringer ("Stringer nil field" , nil ), expectedValue : nil , expectedType : logger .StringerType },
5357 {field : logger .Stringer ("Stringer field" , MyStringer {}), expectedValue : MyStringer {}, expectedType : logger .StringerType },
58+ {field : logger .Reflect ("Reflect nil field" , nil ), expectedValue : nil , expectedType : logger .ReflectType },
5459 {field : logger .Reflect ("Reflect field" , struct {}{}), expectedValue : struct {}{}, expectedType : logger .ReflectType },
5560 }
5661
@@ -127,12 +132,16 @@ func TestField_String(t *testing.T) {
127132 {field : logger .Complex64 ("Complex64 field" , 6 + 7i ), expectedString : "(6+7i)" },
128133 {field : logger .Complex128 ("Complex128 field" , 6 + 7i ), expectedString : "(6+7i)" },
129134 {field : logger .String ("String field" , "my_value" ), expectedString : "my_value" },
135+ {field : logger .Binary ("Binary nil field" , nil ), expectedString : "" },
130136 {field : logger .Binary ("Binary field" , []byte {1 , 2 , 3 }), expectedString : "\x01 \x02 \x03 " },
137+ {field : logger .ByteString ("ByteString nil field" , nil ), expectedString : "" },
131138 {field : logger .ByteString ("ByteString field" , []byte ("my_value" )), expectedString : "my_value" },
139+ {field : logger .Error ("Error nil field" , nil ), expectedString : "<nil>" },
132140 {field : logger .Error ("Error field" , err ), expectedString : "my_error_value" },
133141 {field : logger .Time ("Time field" , now ), expectedString : now .String ()},
134142 {field : logger .Duration ("Duration field" , 5 * time .Second ), expectedString : "5s" },
135143 {field : logger .Stringer ("Stringer field" , MyStringer {}), expectedString : "my_stringer" },
144+ {field : logger .Reflect ("Reflect nil field" , nil ), expectedString : "<nil>" },
136145 {field : logger .Reflect ("Reflect field" , struct {}{}), expectedString : "{}" },
137146 }
138147
@@ -170,12 +179,16 @@ func TestField_MarshalJSON(t *testing.T) {
170179 {field : logger .Complex64 ("Complex64 field" , 6 + 7i ), expectedString : `"(6+7i)"` },
171180 {field : logger .Complex128 ("Complex128 field" , 6 + 7i ), expectedString : `"(6+7i)"` },
172181 {field : logger .String ("String field" , "my_value" ), expectedString : `"my_value"` },
182+ {field : logger .Binary ("Binary nil field" , nil ), expectedString : `""` },
173183 {field : logger .Binary ("Binary field" , []byte {1 , 2 , 3 }), expectedString : `"\x01\x02\x03"` },
184+ {field : logger .ByteString ("ByteString nil field" , nil ), expectedString : `""` },
174185 {field : logger .ByteString ("ByteString field" , []byte ("my_value" )), expectedString : `"my_value"` },
186+ {field : logger .Error ("Error nil field" , nil ), expectedString : "null" },
175187 {field : logger .Error ("Error field" , err ), expectedString : `"my_error_value"` },
176188 {field : logger .Time ("Time field" , now ), expectedString : string (nowMarshalled )},
177189 {field : logger .Duration ("Duration field" , 5 * time .Second ), expectedString : `"5s"` },
178190 {field : logger .Stringer ("Stringer field" , MyStringer {}), expectedString : `"my_stringer"` },
191+ {field : logger .Reflect ("Reflect nil field" , nil ), expectedString : "null" },
179192 {field : logger .Reflect ("Reflect field" , struct {}{}), expectedString : "{}" },
180193 }
181194
0 commit comments