51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
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)
|
|
}
|