package logger_test import ( "context" "io" "os" "strings" "testing" "time" "modelRT/config" "modelRT/constants" "modelRT/logger" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestCallerPointsToBusinessCode(t *testing.T) { reader, writer, err := os.Pipe() require.NoError(t, err) originalStdout := os.Stdout os.Stdout = writer t.Cleanup(func() { os.Stdout = originalStdout _ = reader.Close() _ = writer.Close() }) logger.InitLoggerInstance(config.LoggerConfig{ Mode: constants.DevelopmentLogMode, Level: "info", }) logger.Info(context.Background(), "facade caller test") logger.NewGormLogger().Trace(context.Background(), time.Now(), func() (string, int64) { return "SELECT 1", 1 }, nil) require.NoError(t, writer.Close()) outputBytes, err := io.ReadAll(reader) require.NoError(t, err) output := string(outputBytes) assert.NotContains(t, output, "logger/facede.go") assert.NotContains(t, output, `"func":"modelRT/logger.Info"`) assert.NotContains(t, output, "gorm.io/gorm") assert.Contains(t, output, "caller_test.go") assert.True(t, strings.Count(output, "modelRT/logger_test.TestCallerPointsToBusinessCode") >= 2) }