summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/mattermost-server/v5/mlog/testing.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2020-08-10 00:29:54 +0200
committerGitHub <noreply@github.com>2020-08-10 00:29:54 +0200
commit4e50fd864921c556988c919269448efdb90fa961 (patch)
treea3625f03f8de3c4f3841364000a4ea3aa42c1533 /vendor/github.com/mattermost/mattermost-server/v5/mlog/testing.go
parentdfdffa0027334e55ce213fc6eb62206dbf48baf6 (diff)
downloadmatterbridge-msglm-4e50fd864921c556988c919269448efdb90fa961.tar.gz
matterbridge-msglm-4e50fd864921c556988c919269448efdb90fa961.tar.bz2
matterbridge-msglm-4e50fd864921c556988c919269448efdb90fa961.zip
Use mattermost v5 module (#1192)
Diffstat (limited to 'vendor/github.com/mattermost/mattermost-server/v5/mlog/testing.go')
-rw-r--r--vendor/github.com/mattermost/mattermost-server/v5/mlog/testing.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/vendor/github.com/mattermost/mattermost-server/v5/mlog/testing.go b/vendor/github.com/mattermost/mattermost-server/v5/mlog/testing.go
new file mode 100644
index 00000000..bf1bcedf
--- /dev/null
+++ b/vendor/github.com/mattermost/mattermost-server/v5/mlog/testing.go
@@ -0,0 +1,43 @@
+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
+// See LICENSE.txt for license information.
+
+package mlog
+
+import (
+ "io"
+ "strings"
+ "testing"
+
+ "go.uber.org/zap"
+ "go.uber.org/zap/zapcore"
+)
+
+// testingWriter is an io.Writer that writes through t.Log
+type testingWriter struct {
+ tb testing.TB
+}
+
+func (tw *testingWriter) Write(b []byte) (int, error) {
+ tw.tb.Log(strings.TrimSpace(string(b)))
+ return len(b), nil
+}
+
+// NewTestingLogger creates a Logger that proxies logs through a testing interface.
+// This allows tests that spin up App instances to avoid spewing logs unless the test fails or -verbose is specified.
+func NewTestingLogger(tb testing.TB, writer io.Writer) *Logger {
+ logWriter := &testingWriter{tb}
+ multiWriter := io.MultiWriter(logWriter, writer)
+ logWriterSync := zapcore.AddSync(multiWriter)
+
+ testingLogger := &Logger{
+ consoleLevel: zap.NewAtomicLevelAt(getZapLevel("debug")),
+ fileLevel: zap.NewAtomicLevelAt(getZapLevel("info")),
+ }
+
+ logWriterCore := zapcore.NewCore(makeEncoder(true), logWriterSync, testingLogger.consoleLevel)
+
+ testingLogger.zap = zap.New(logWriterCore,
+ zap.AddCaller(),
+ )
+ return testingLogger
+}