docs: record remote preview acceptance and verify example error logging
This commit is contained in:
36
examples/userService/internal/service/user/errors_test.go
Normal file
36
examples/userService/internal/service/user/errors_test.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"example.com/userService/internal/servicecontext"
|
||||
apierrors "git.yuntuo.hk/k2safe/go-omni/errors"
|
||||
"git.yuntuo.hk/k2safe/go-omni/logx"
|
||||
)
|
||||
|
||||
func TestDriverMessageDoesNotReachAccessOrBusinessLogs(t *testing.T) {
|
||||
var output bytes.Buffer
|
||||
cfg := logx.Default()
|
||||
cfg.Writer = &output
|
||||
logger, err := logx.New(cfg)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer logger.Close()
|
||||
service := New(&servicecontext.Context{Logger: logger})
|
||||
secret := "private-user-input-in-driver-error"
|
||||
got := service.failure(context.Background(), errors.New(secret))
|
||||
if apierrors.From(got).Status != 500 {
|
||||
t.Fatal("wrong error mapping")
|
||||
}
|
||||
if strings.Contains(got.Error(), secret) || strings.Contains(output.String(), secret) {
|
||||
t.Fatal("driver detail leaked into logging path")
|
||||
}
|
||||
if !strings.Contains(output.String(), "user.operationFailed") {
|
||||
t.Fatal("failure event missing")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user