...

Source file src/cdr.dev/slog/slog_exit_test.go

Documentation: cdr.dev/slog

     1  package slog
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"cdr.dev/slog/internal/assert"
     8  )
     9  
    10  func TestExit(t *testing.T) {
    11  	// This can't be parallel since it modifies a global variable.
    12  	t.Run("defaultExitFn", func(t *testing.T) {
    13  		var (
    14  			ctx                 = context.Background()
    15  			log                 Logger
    16  			defaultExitFnCalled bool
    17  		)
    18  
    19  		prevExitFn := defaultExitFn
    20  		t.Cleanup(func() { defaultExitFn = prevExitFn })
    21  
    22  		defaultExitFn = func(_ int) {
    23  			defaultExitFnCalled = true
    24  		}
    25  
    26  		log.Debug(ctx, "hi")
    27  		log.Info(ctx, "hi")
    28  		log.Warn(ctx, "hi")
    29  		log.Error(ctx, "hi")
    30  		log.Critical(ctx, "hi")
    31  		log.Fatal(ctx, "hi")
    32  
    33  		assert.True(t, "default exit fn used", defaultExitFnCalled)
    34  	})
    35  }
    36  

View as plain text