11package logger
22
33import (
4+ "io"
45 "os"
56 "regexp"
67 "testing"
@@ -20,7 +21,7 @@ func TestConfigure(t *testing.T) {
2021 }
2122
2223 closer := Configure (& config )
23- defer closer . Close ( )
24+ defer MustClose ( t , closer )
2425
2526 log .Info ("this is a test" )
2627 log .WithFields (log.Fields {}).Debug ("debug log message" )
@@ -43,7 +44,7 @@ func TestConfigureWithDebugLogLevel(t *testing.T) {
4344 }
4445
4546 closer := Configure (& config )
46- defer closer . Close ( )
47+ defer MustClose ( t , closer )
4748
4849 log .WithFields (log.Fields {}).Debug ("debug log message" )
4950
@@ -61,7 +62,7 @@ func TestConfigureWithPermissionError(t *testing.T) {
6162 }
6263
6364 closer := Configure (& config )
64- defer closer . Close ( )
65+ defer MustClose ( t , closer )
6566
6667 log .Info ("this is a test" )
6768}
@@ -75,7 +76,7 @@ func TestLogInUTC(t *testing.T) {
7576 }
7677
7778 closer := Configure (& config )
78- defer closer . Close ( )
79+ defer MustClose ( t , closer )
7980
8081 log .Info ("this is a test" )
8182
@@ -107,7 +108,9 @@ func TestConfigureLabkitV2Log(t *testing.T) {
107108 LogLevel : "debug" ,
108109 }
109110
110- logger := ConfigureLogger (& config )
111+ logger , closer , err := ConfigureLogger (& config )
112+ require .NoError (t , err )
113+ defer MustClose (t , closer )
111114 logger .Info ("this is a test" )
112115 logger .Debug ("debug log message" )
113116
@@ -117,3 +120,11 @@ func TestConfigureLabkitV2Log(t *testing.T) {
117120 require .Contains (t , dataStr , `"msg":"this is a test"` )
118121 require .Contains (t , dataStr , `"msg":"debug log message"` )
119122}
123+
124+ // MustClose calls Close() on the Closer and fails the test in case it returns
125+ // an error. This function is useful when closing via `defer`, as a simple
126+ // `defer require.NoError(t, closer.Close())` would cause `closer.Close()` to
127+ // be executed early already.
128+ func MustClose (tb testing.TB , closer io.Closer ) {
129+ require .NoError (tb , closer .Close ())
130+ }
0 commit comments