初始化仓库
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
package feishu
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
larkcore "github.com/larksuite/oapi-sdk-go/v3/core"
|
||||
)
|
||||
|
||||
type recordingLarkLogger struct {
|
||||
debugCalls int
|
||||
debugArgs [][]interface{}
|
||||
}
|
||||
|
||||
func (l *recordingLarkLogger) Debug(_ context.Context, args ...interface{}) {
|
||||
l.debugCalls++
|
||||
cp := make([]interface{}, len(args))
|
||||
copy(cp, args)
|
||||
l.debugArgs = append(l.debugArgs, cp)
|
||||
}
|
||||
|
||||
func (l *recordingLarkLogger) Info(context.Context, ...interface{}) {}
|
||||
func (l *recordingLarkLogger) Warn(context.Context, ...interface{}) {}
|
||||
func (l *recordingLarkLogger) Error(context.Context, ...interface{}) {}
|
||||
|
||||
var _ larkcore.Logger = (*recordingLarkLogger)(nil)
|
||||
|
||||
func TestSanitizingLogger_DropsHeartbeatDebugLogs(t *testing.T) {
|
||||
inner := &recordingLarkLogger{}
|
||||
logger := &sanitizingLogger{inner: inner}
|
||||
|
||||
logger.Debug(context.Background(), "ping success", "conn_id=123")
|
||||
logger.Debug(context.Background(), "receive pong", "conn_id=123")
|
||||
|
||||
if inner.debugCalls != 0 {
|
||||
t.Fatalf("debug calls = %d, want 0 for heartbeat noise", inner.debugCalls)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSanitizingLogger_KeepOtherDebugAndMaskSecrets(t *testing.T) {
|
||||
inner := &recordingLarkLogger{}
|
||||
logger := &sanitizingLogger{inner: inner}
|
||||
|
||||
logger.Debug(context.Background(), "websocket message", "https://x.test/ws?token=abc&conn_id=123")
|
||||
|
||||
if inner.debugCalls != 1 {
|
||||
t.Fatalf("debug calls = %d, want 1", inner.debugCalls)
|
||||
}
|
||||
if len(inner.debugArgs) != 1 || len(inner.debugArgs[0]) < 2 {
|
||||
t.Fatalf("debug args = %#v, want one call with args", inner.debugArgs)
|
||||
}
|
||||
|
||||
urlArg, ok := inner.debugArgs[0][1].(string)
|
||||
if !ok {
|
||||
t.Fatalf("second arg type = %T, want string", inner.debugArgs[0][1])
|
||||
}
|
||||
if strings.Contains(urlArg, "token=abc") || strings.Contains(urlArg, "conn_id=123") {
|
||||
t.Fatalf("url arg not masked: %q", urlArg)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user